[gnome-shell/gbsneto/remove-generic-container: 37/38] panel: Delegate container destruction to PanelMenu.ButtonBox
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/gbsneto/remove-generic-container: 37/38] panel: Delegate container destruction to PanelMenu.ButtonBox
- Date: Tue, 9 Oct 2018 01:46:00 +0000 (UTC)
commit 557b232c8964fbe5b5cbbbdc53d6af65dd010fd0
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Tue Aug 28 22:37:27 2018 -0300
panel: Delegate container destruction to PanelMenu.ButtonBox
Instead of taking care of the PanelMenu.ButtonBox.container
destruction by itself, delegate that to the very object that
created it in the first place: PanelMenu.ButtonBox itself.
js/ui/panel.js | 1 -
js/ui/panelMenu.js | 10 +++++++++-
2 files changed, 9 insertions(+), 2 deletions(-)
---
diff --git a/js/ui/panel.js b/js/ui/panel.js
index e61557ab9..49759af4c 100644
--- a/js/ui/panel.js
+++ b/js/ui/panel.js
@@ -1158,7 +1158,6 @@ var Panel = new Lang.Class({
let destroyId = indicator.connect('destroy', emitter => {
delete this.statusArea[role];
emitter.disconnect(destroyId);
- container.destroy();
});
indicator.connect('menu-set', this._onMenuSet.bind(this));
this._onMenuSet(indicator);
diff --git a/js/ui/panelMenu.js b/js/ui/panelMenu.js
index 6f496db97..401419dec 100644
--- a/js/ui/panelMenu.js
+++ b/js/ui/panelMenu.js
@@ -30,6 +30,8 @@ var ButtonBox = new Lang.Class({
child: this.actor });
this.connect('style-changed', this._onStyleChanged.bind(this));
+ this.connect('destroy', this._onDestroy.bind(this));
+
this._minHPadding = this._natHPadding = 0.0;
},
@@ -90,6 +92,11 @@ var ButtonBox = new Lang.Class({
child.allocate(childBox, flags);
},
+
+ _onDestroy() {
+ this.container.child = null;
+ this.container.destroy();
+ },
});
var Button = new Lang.Class({
@@ -106,7 +113,6 @@ var Button = new Lang.Class({
this.connect('event', this._onEvent.bind(this));
this.connect('notify::visible', this._onVisibilityChanged.bind(this));
- this.connect('destroy', this._onDestroy.bind(this));
if (dontCreateMenu)
this.menu = new PopupMenu.PopupDummyMenu(this.actor);
@@ -190,6 +196,8 @@ var Button = new Lang.Class({
},
_onDestroy() {
+ this.parent();
+
if (this.menu)
this.menu.destroy();
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]