[gnome-shell] closeDialog: Remove transitions before resetting dialog
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] closeDialog: Remove transitions before resetting dialog
- Date: Mon, 23 Mar 2020 15:34:01 +0000 (UTC)
commit 08203c9c1e021da8fb212ae6e1ca1c3704a3e91d
Author: Florian Müllner <fmuellner gnome org>
Date: Sun Mar 22 00:18:13 2020 +0100
closeDialog: Remove transitions before resetting dialog
On X11, _onFocusChanged() updates the input region, as well as the
reactive-ness of the dialog's buttons.
That method is not only used as signal handlers (which are correctly
disconnected when the dialog is hidden), it also runs when the "show"
transition completes.
That's a problem if the transition is still ongoing when the dialog is
hidden, as it will then only complete when it is replaced by the "hide"
transition, after the this._dialog has been reset to null, and trying
to access the dialog's buttons results in an error.
Avoid this by explicitly removing all transition on hide before
resetting the dialog.
https://gitlab.gnome.org/GNOME/gnome-shell/issues/2467
js/ui/closeDialog.js | 2 ++
1 file changed, 2 insertions(+)
---
diff --git a/js/ui/closeDialog.js b/js/ui/closeDialog.js
index 01799bd4ce..63a0bcfcf8 100644
--- a/js/ui/closeDialog.js
+++ b/js/ui/closeDialog.js
@@ -188,6 +188,8 @@ var CloseDialog = GObject.registerClass({
global.stage.disconnect(this._keyFocusChangedId);
this._keyFocusChangedId = 0;
+ this._dialog._dialog.remove_all_transitions();
+
let dialog = this._dialog;
this._dialog = null;
this._removeWindowEffect();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]