closeDialog: Make dialog inactive while fading out

Otherwise the user might click Kill, which would crash if the fade-out
was triggered because a Wayland window was closed.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1032


(cherry picked from commit 32fa060a62)
This commit is contained in:
Jonas Ådahl 2020-02-19 21:54:42 +00:00
parent f21a0ff458
commit 99d948559b
2 changed files with 8 additions and 1 deletions

View File

@ -192,6 +192,7 @@ var CloseDialog = GObject.registerClass({
this._dialog = null; this._dialog = null;
this._removeWindowEffect(); this._removeWindowEffect();
dialog.makeInactive();
dialog._dialog.ease({ dialog._dialog.ease({
scale_y: 0, scale_y: 0,
mode: Clutter.AnimationMode.LINEAR, mode: Clutter.AnimationMode.LINEAR,

View File

@ -51,10 +51,16 @@ class Dialog extends St.Widget {
y_align: St.Align.START }); y_align: St.Align.START });
} }
_onDestroy() { makeInactive() {
if (this._eventId != 0) if (this._eventId != 0)
this._parentActor.disconnect(this._eventId); this._parentActor.disconnect(this._eventId);
this._eventId = 0; this._eventId = 0;
this.buttonLayout.get_children().forEach(c => c.set_reactive(false));
}
_onDestroy() {
this.makeInactive();
} }
_modalEventHandler(actor, event) { _modalEventHandler(actor, event) {