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
This commit is contained in:
Jonas Ådahl 2020-02-19 22:54:42 +01:00
parent 38da479ee8
commit 32fa060a62
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

@ -58,10 +58,16 @@ class Dialog extends St.Widget {
this._dialog.add_child(this.buttonLayout); this._dialog.add_child(this.buttonLayout);
} }
_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) {