[gnome-shell-extensions/gnome-3-14] window-list: Keep panel below modal dialogs when possible



commit 1406feb262a207ea8d8454049f85fdc8724e92ee
Author: Florian Müllner <fmuellner gnome org>
Date:   Wed Nov 26 19:43:53 2014 +0100

    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 files changed, 8 insertions(+), 3 deletions(-)
---
diff --git a/extensions/window-list/extension.js b/extensions/window-list/extension.js
index 0cee654..424b14a 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();
                 }));
 


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