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
This commit is contained in:
parent
ede0bf2d88
commit
4c29604e1e
@ -1403,6 +1403,9 @@ const WindowManager = new Lang.Class({
|
|||||||
actor._windowType = type;
|
actor._windowType = type;
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
if (actor.meta_window.is_attached_dialog())
|
||||||
|
this._checkDimming(actor.get_meta_window().get_transient_for());
|
||||||
|
|
||||||
let types = [Meta.WindowType.NORMAL,
|
let types = [Meta.WindowType.NORMAL,
|
||||||
Meta.WindowType.DIALOG,
|
Meta.WindowType.DIALOG,
|
||||||
Meta.WindowType.MODAL_DIALOG];
|
Meta.WindowType.MODAL_DIALOG];
|
||||||
@ -1411,9 +1414,6 @@ const WindowManager = new Lang.Class({
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (actor.meta_window.is_attached_dialog())
|
|
||||||
this._checkDimming(actor.get_meta_window().get_transient_for());
|
|
||||||
|
|
||||||
switch (actor._windowType) {
|
switch (actor._windowType) {
|
||||||
case Meta.WindowType.NORMAL:
|
case Meta.WindowType.NORMAL:
|
||||||
actor.set_pivot_point(0.5, 1.0);
|
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,
|
let types = [Meta.WindowType.NORMAL,
|
||||||
Meta.WindowType.DIALOG,
|
Meta.WindowType.DIALOG,
|
||||||
Meta.WindowType.MODAL_DIALOG];
|
Meta.WindowType.MODAL_DIALOG];
|
||||||
@ -1530,7 +1533,6 @@ const WindowManager = new Lang.Class({
|
|||||||
|
|
||||||
if (window.is_attached_dialog()) {
|
if (window.is_attached_dialog()) {
|
||||||
let parent = window.get_transient_for();
|
let parent = window.get_transient_for();
|
||||||
this._checkDimming(parent, window);
|
|
||||||
actor._parentDestroyId = parent.connect('unmanaged', Lang.bind(this, function () {
|
actor._parentDestroyId = parent.connect('unmanaged', Lang.bind(this, function () {
|
||||||
Tweener.removeTweens(actor);
|
Tweener.removeTweens(actor);
|
||||||
this._destroyWindowDone(shellwm, actor);
|
this._destroyWindowDone(shellwm, actor);
|
||||||
|
Loading…
Reference in New Issue
Block a user