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




commit b21c0d9265cffcaa622c4ca20095c7b730eeb222
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.

 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]