[gnome-shell] appMenu: Clean up on destroy
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] appMenu: Clean up on destroy
- Date: Mon, 16 Aug 2021 21:32:41 +0000 (UTC)
commit 07daa95393b2ad482b59d5c498b3f82964bbb64b
Author: Florian Müllner <fmuellner gnome org>
Date: Thu Aug 12 00:24:02 2021 +0200
appMenu: Clean up on destroy
For now the menu is only used in the top bar, where we can assume
that it exists "forever". This won't be the case when we start
reusing it elsewhere, so make sure we clean up after ourselves.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1948>
js/ui/appMenu.js | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)
---
diff --git a/js/ui/appMenu.js b/js/ui/appMenu.js
index ae6aa16a0f..42c92a4222 100644
--- a/js/ui/appMenu.js
+++ b/js/ui/appMenu.js
@@ -55,8 +55,12 @@ var AppMenu = class AppMenu extends PopupMenu.PopupMenu {
this.addAction(_('Quit'), () => this._app.request_quit());
- this._appSystem.connect('installed-changed',
- () => this._updateDetailsVisibility());
+ this._signals = [];
+ this._signals.push([
+ this._appSystem,
+ this._appSystem.connect('installed-changed',
+ () => this._updateDetailsVisibility()),
+ ]);
this._updateDetailsVisibility();
}
@@ -65,6 +69,17 @@ var AppMenu = class AppMenu extends PopupMenu.PopupMenu {
this._detailsItem.visible = sw !== null;
}
+ /** */
+ destroy() {
+ super.destroy();
+
+ for (const [obj, id] of this._signals)
+ obj.disconnect(id);
+ this._signals = [];
+
+ this.setApp(null);
+ }
+
/**
* @returns {bool} - true if the menu is empty
*/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]