From 4c29604e1e1a92b8dd16773fc15f7a482fd9541f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Mon, 22 Feb 2016 17:59:05 +0100 Subject: [PATCH] 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 file changed, 6 insertions(+), 4 deletions(-) diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js index 32b8c0f6c..a36a71ffc 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);