[gnome-shell] layout: Don't use reparent



commit 978ac65caecd5e59b6d4ccab97662ded23a91b42
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Wed Feb 13 12:30:26 2013 -0500

    layout: Don't use reparent
    
    reparent() defines the new actor stacking order based on the
    existing depth of the actor, which is flat out wrong. Simply
    remove the actor from its old parent and add the new one in.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=633620

 js/ui/layout.js |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)
---
diff --git a/js/ui/layout.js b/js/ui/layout.js
index 4dc3f61..3a240e0 100644
--- a/js/ui/layout.js
+++ b/js/ui/layout.js
@@ -151,7 +151,8 @@ const LayoutManager = new Lang.Class({
                             [alloc.min_size, alloc.natural_size] = [height, height];
                         });
 
-        global.window_group.reparent(this.uiGroup);
+        global.stage.remove_actor(global.window_group);
+        this.uiGroup.add_actor(global.window_group);
 
         // Now, you might wonder why we went through all the hoops to implement
         // the GDM greeter inside an X11 compositor, to do this at the end...
@@ -160,7 +161,9 @@ const LayoutManager = new Lang.Class({
         if (Main.sessionMode.isGreeter)
             global.window_group.hide();
 
-        global.overlay_group.reparent(this.uiGroup);
+        global.stage.remove_actor(global.overlay_group);
+        this.uiGroup.add_actor(global.overlay_group);
+
         global.stage.add_child(this.uiGroup);
 
         this.screenShieldGroup = new St.Widget({ name: 'screenShieldGroup',


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]