[gnome-shell/wip/fmuellner/gtk4: 30/39] extensions-app: Explicitly dispose window when removed




commit 1bb0e1b9fcaf80800673674a722ba0d229314735
Author: Florian Müllner <fmuellner gnome org>
Date:   Wed Nov 18 02:16:26 2020 +0100

    extensions-app: Explicitly dispose window when removed
    
    Unlike in previous GTK version (or Clutter), destroy() no longer
    breaks reference cycles but just releases the reference held by
    GTK itself.
    
    So any reference we hold - either the explicit property or any signal
    handlers that bind the window as `this` - prevents the window from
    being disposed when closed, and the application won't quit.
    
    Work around this by explicitly running dispose() on the window when
    it is removed from the application.
    
    Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1495>

 subprojects/extensions-app/js/main.js | 2 ++
 1 file changed, 2 insertions(+)
---
diff --git a/subprojects/extensions-app/js/main.js b/subprojects/extensions-app/js/main.js
index dc993ef966..8ff753d56b 100644
--- a/subprojects/extensions-app/js/main.js
+++ b/subprojects/extensions-app/js/main.js
@@ -42,6 +42,8 @@ class Application extends Gtk.Application {
     _init() {
         GLib.set_prgname('gnome-extensions-app');
         super._init({ application_id: 'org.gnome.Extensions' });
+
+        this.connect('window-removed', (a, window) => window.run_dispose());
     }
 
     get shellProxy() {


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