[gnome-shell/wip/appdisplay-leak: 3/8] appDisplay: add AppFolderPopup destroy handler



commit 8ad2d3d670d89f86fc80b703ee512b8a1cc9d854
Author: Ray Strode <rstrode redhat com>
Date:   Mon Jul 22 11:02:10 2019 -0400

    appDisplay: add AppFolderPopup destroy handler
    
    At the moment AppFolderPopup calls popdown on destruction,
    which leads to open-state-changed getting emitted after
    the actor associated with the popup is destroyed.
    
    This commit handles ungrabbing and closing from an
    actor destroy handler to side-step the open-state-changed
    signal.
    
    https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/628

 js/ui/appDisplay.js | 9 +++++++++
 1 file changed, 9 insertions(+)
---
diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
index 6dbbfe38c..02719e89f 100644
--- a/js/ui/appDisplay.js
+++ b/js/ui/appDisplay.js
@@ -1316,6 +1316,15 @@ var AppFolderPopup = class AppFolderPopup {
         });
         this._grabHelper.addActor(Main.layoutManager.overviewGroup);
         this.actor.connect('key-press-event', this._onKeyPress.bind(this));
+        this.actor.connect('destroy', this._onDestroy.bind(this));
+    }
+
+    _onDestroy() {
+        if (this._isOpen) {
+            this._isOpen = false;
+            this._grabHelper.ungrab({ actor: this.actor });
+            this._grabHelper = null;
+        }
     }
 
     _onKeyPress(actor, event) {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]