From 1bb0e1b9fcaf80800673674a722ba0d229314735 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 18 Nov 2020 02:16:26 +0100 Subject: [PATCH] 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: --- 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 dc993ef96..8ff753d56 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() {