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



commit adc68889b7347f754c788e75272f5987c4dc9c56
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 |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)
---
diff --git a/extensions/window-list/extension.js b/extensions/window-list/extension.js
index 0f9fc83..c0a4ac5 100644
--- a/extensions/window-list/extension.js
+++ b/extensions/window-list/extension.js
@@ -866,6 +866,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.actor.width = this._monitor.width;
@@ -881,8 +882,13 @@ const WindowList = new Lang.Class({
             Main.layoutManager.connect('keyboard-visible-changed',
                 Lang.bind(this, function(o, state) {
                     Main.layoutManager.keyboardBox.visible = state;
-                    Main.uiGroup.set_child_above_sibling(this.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]