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.
This commit is contained in:
Georges Basile Stavracas Neto 2018-08-28 22:37:27 -03:00
parent b719744e75
commit 557b232c89
No known key found for this signature in database
GPG Key ID: 886C17EE170D1385
2 changed files with 9 additions and 2 deletions

View File

@ -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);

View File

@ -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();
}