lookingGlass: Only pop modal after the transition

Right now we pop the modal immediately when closing, so the key-release
event of the Escape key ends up in the focus window which may consume it
for leaving fullscreen mode or similar.

We can avoid that in many cases by keeping the modal grab until the end
of the transition, as the key-release event will then likely occur while
the grab is still in place (provided animations are enabled).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1880>
This commit is contained in:
Florian Müllner 2021-06-10 01:55:31 +02:00 committed by Marge Bot
parent 303fc944d0
commit 5be67eb190

View File

@ -1368,8 +1368,6 @@ class LookingGlass extends St.BoxLayout {
this.setBorderPaintTarget(null); this.setBorderPaintTarget(null);
Main.popModal(this._entry);
let settings = St.Settings.get(); let settings = St.Settings.get();
let duration = Math.min(LG_ANIMATION_TIME / settings.slow_down_factor, let duration = Math.min(LG_ANIMATION_TIME / settings.slow_down_factor,
LG_ANIMATION_TIME); LG_ANIMATION_TIME);
@ -1377,7 +1375,10 @@ class LookingGlass extends St.BoxLayout {
y: this._hiddenY, y: this._hiddenY,
duration, duration,
mode: Clutter.AnimationMode.EASE_OUT_QUAD, mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onComplete: () => this.hide(), onComplete: () => {
Main.popModal(this._entry);
this.hide();
},
}); });
} }