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
This commit is contained in:
Jasper St. Pierre 2013-02-13 12:30:26 -05:00
parent eb5a836822
commit 978ac65cae

View File

@ -151,7 +151,8 @@ const LayoutManager = new Lang.Class({
[alloc.min_size, alloc.natural_size] = [height, height]; [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 // 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... // 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) if (Main.sessionMode.isGreeter)
global.window_group.hide(); 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); global.stage.add_child(this.uiGroup);
this.screenShieldGroup = new St.Widget({ name: 'screenShieldGroup', this.screenShieldGroup = new St.Widget({ name: 'screenShieldGroup',