[gnome-shell] windowManager: Always check dimming when an attached modal opens/closes



commit 4c29604e1e1a92b8dd16773fc15f7a482fd9541f
Author: Florian Müllner <fmuellner gnome org>
Date:   Mon Feb 22 17:59:05 2016 +0100

    windowManager: Always check dimming when an attached modal opens/closes
    
    We skip window animations while the overview is shown (and the window
    group is hidden) to avoid unnecessary work. However when an attached
    modal dialog is opened or closed, this involves checking whether the
    parent window should be dimmed - skipping that test means that we can
    simply fail to dim or undim a window altogether, so do that check
    unconditionally.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=762475

 js/ui/windowManager.js |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)
---
diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js
index 32b8c0f..a36a71f 100644
--- a/js/ui/windowManager.js
+++ b/js/ui/windowManager.js
@@ -1403,6 +1403,9 @@ const WindowManager = new Lang.Class({
             actor._windowType = type;
         }));
 
+        if (actor.meta_window.is_attached_dialog())
+            this._checkDimming(actor.get_meta_window().get_transient_for());
+
         let types = [Meta.WindowType.NORMAL,
                      Meta.WindowType.DIALOG,
                      Meta.WindowType.MODAL_DIALOG];
@@ -1411,9 +1414,6 @@ const WindowManager = new Lang.Class({
             return;
         }
 
-        if (actor.meta_window.is_attached_dialog())
-            this._checkDimming(actor.get_meta_window().get_transient_for());
-
         switch (actor._windowType) {
         case Meta.WindowType.NORMAL:
             actor.set_pivot_point(0.5, 1.0);
@@ -1496,6 +1496,9 @@ const WindowManager = new Lang.Class({
                                                              });
         }
 
+        if (window.is_attached_dialog())
+            this._checkDimming(window.get_transient_for(), window);
+
         let types = [Meta.WindowType.NORMAL,
                      Meta.WindowType.DIALOG,
                      Meta.WindowType.MODAL_DIALOG];
@@ -1530,7 +1533,6 @@ const WindowManager = new Lang.Class({
 
             if (window.is_attached_dialog()) {
                 let parent = window.get_transient_for();
-                this._checkDimming(parent, window);
                 actor._parentDestroyId = parent.connect('unmanaged', Lang.bind(this, function () {
                     Tweener.removeTweens(actor);
                     this._destroyWindowDone(shellwm, actor);


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