From 978ac65caecd5e59b6d4ccab97662ded23a91b42 Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Wed, 13 Feb 2013 12:30:26 -0500 Subject: [PATCH] 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 file changed, 5 insertions(+), 2 deletions(-) diff --git a/js/ui/layout.js b/js/ui/layout.js index 4dc3f6156..3a240e0c3 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',