[gnome-shell] IMStatusChooserItem: clean up signal handlers on destroy()
- From: Giovanni Campagna <gcampagna src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] IMStatusChooserItem: clean up signal handlers on destroy()
- Date: Thu, 20 Oct 2011 13:07:34 +0000 (UTC)
commit 615723d8df61ea261f278441904c7ba97fd9baff
Author: Giovanni Campagna <gcampagna src gnome org>
Date: Mon Oct 17 15:18:25 2011 +0200
IMStatusChooserItem: clean up signal handlers on destroy()
Extensions (like alternative-status-menu) expect that calling
destroy() on a menu item will not leave signal handlers around.
https://bugzilla.gnome.org/show_bug.cgi?id=660520
js/ui/userMenu.js | 15 +++++++++++++++
1 files changed, 15 insertions(+), 0 deletions(-)
---
diff --git a/js/ui/userMenu.js b/js/ui/userMenu.js
index 311ba73..d2b0ea3 100644
--- a/js/ui/userMenu.js
+++ b/js/ui/userMenu.js
@@ -199,6 +199,21 @@ IMStatusChooserItem.prototype = {
}));
},
+ destroy: function() {
+ // clean up signal handlers
+ if (this._userLoadedId != 0) {
+ this._user.disconnect(this._userLoadedId);
+ this._userLoadedId = 0;
+ }
+
+ if (this._userChangedId != 0) {
+ this._user.disconnect(this._userChangedId);
+ this._userChangedId = 0;
+ }
+
+ PopupMenu.PopupBaseMenuItem.prototype.destroy.call(this);
+ },
+
// Override getColumnWidths()/setColumnWidths() to make the item
// independent from the overall column layout of the menu
getColumnWidths: function() {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]