From 1406feb262a207ea8d8454049f85fdc8724e92ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 26 Nov 2014 19:43:53 +0100 Subject: [PATCH] window-list: Keep panel below modal dialogs when possible Currently the window-list will be stacked above system modal dialogs, which means it is not dimmed like the rest of the desktop and remains accessible to interaction. We cannot do any better when showing the on-screen keyboard, as we need to keep ourselves above to not end up covered by the OSK, and the keyboard itself is stacked above modal dialogs to allow its use for input. However we can at least fix the case when not using the OSK. https://bugzilla.gnome.org/show_bug.cgi?id=740722 --- extensions/window-list/extension.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/extensions/window-list/extension.js b/extensions/window-list/extension.js index 0cee654e..424b14ad 100644 --- a/extensions/window-list/extension.js +++ b/extensions/window-list/extension.js @@ -796,6 +796,7 @@ const WindowList = new Lang.Class({ Main.layoutManager.addChrome(this.actor, { affectsStruts: true, trackFullscreen: true }); + Main.uiGroup.set_child_above_sibling(this.actor, Main.layoutManager.trayBox); Main.ctrlAltTabManager.addGroup(this.actor, _("Window List"), 'start-here-symbolic'); this._appSystem = Shell.AppSystem.get_default(); @@ -811,9 +812,13 @@ const WindowList = new Lang.Class({ this._keyboardVisiblechangedId = Main.layoutManager.connect('keyboard-visible-changed', Lang.bind(this, function(o, state) { - Main.layoutManager.keyboardBox.visible = state; - Main.uiGroup.set_child_above_sibling(windowList.actor, - Main.layoutManager.keyboardBox); + let keyboardBox = Main.layoutManager.keyboardBox; + keyboardBox.visible = state; + if (state) + Main.uiGroup.set_child_above_sibling(this.actor, keyboardBox); + else + Main.uiGroup.set_child_above_sibling(this.actor, + Main.layoutManager.trayBox); this._updateKeyboardAnchor(); }));