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
This commit is contained in:
Florian Müllner
2014-11-26 19:43:53 +01:00
parent 00c1e37d77
commit 1406feb262

View File

@@ -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();
}));