userWidget: Fix leaking instances
UserWidget instances should be destroyed when the actor is. That's what consumer code expects since the destroy() method is never called. https://bugzilla.gnome.org/show_bug.cgi?id=700807
This commit is contained in:
parent
db2e6e5b95
commit
3754a76f10
@ -16,6 +16,7 @@ const UserWidget = new Lang.Class({
|
|||||||
|
|
||||||
this.actor = new St.BoxLayout({ style_class: 'user-widget',
|
this.actor = new St.BoxLayout({ style_class: 'user-widget',
|
||||||
vertical: false });
|
vertical: false });
|
||||||
|
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
|
||||||
|
|
||||||
this._avatar = new UserMenu.UserAvatarWidget(user);
|
this._avatar = new UserMenu.UserAvatarWidget(user);
|
||||||
this.actor.add(this._avatar.actor,
|
this.actor.add(this._avatar.actor,
|
||||||
@ -36,7 +37,7 @@ const UserWidget = new Lang.Class({
|
|||||||
this._updateUser();
|
this._updateUser();
|
||||||
},
|
},
|
||||||
|
|
||||||
destroy: function() {
|
_onDestroy: function() {
|
||||||
if (this._userLoadedId != 0) {
|
if (this._userLoadedId != 0) {
|
||||||
this._user.disconnect(this._userLoadedId);
|
this._user.disconnect(this._userLoadedId);
|
||||||
this._userLoadedId = 0;
|
this._userLoadedId = 0;
|
||||||
@ -46,8 +47,6 @@ const UserWidget = new Lang.Class({
|
|||||||
this._user.disconnect(this._userChangedId);
|
this._user.disconnect(this._userChangedId);
|
||||||
this._userChangedId = 0;
|
this._userChangedId = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.actor.destroy();
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_updateUser: function() {
|
_updateUser: function() {
|
||||||
|
Loading…
Reference in New Issue
Block a user