[gnome-shell/gbsneto/remove-generic-container: 27/28] 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: 27/28] panel: Delegate container destruction to PanelMenu.ButtonBox
- Date: Fri, 5 Oct 2018 22:29:37 +0000 (UTC)
commit b0240b24bd09875c00086167db497845a1a6be91
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]