calendar: Disconnect all Notification signals on NotificationMessage destruction
The destroy signal handler is kept connected despite the NotificationMessage being destroyed, which leaves dangling NotificationMessage objects that will be mass destroyed when the Notification object these depend upon is finally destroyed. Depending on the amount of accumulated NotificationMessages, this may lead to temporary freezes or other more funky issues when recursion limits are hit. https://bugzilla.gnome.org/show_bug.cgi?id=755425
This commit is contained in:
parent
6d4e229d1d
commit
8c0a2a1284
@ -1229,7 +1229,7 @@ const NotificationMessage = new Lang.Class({
|
||||
this._closed = true;
|
||||
this.notification.destroy(MessageTray.NotificationDestroyedReason.DISMISSED);
|
||||
}));
|
||||
notification.connect('destroy', Lang.bind(this,
|
||||
this._destroyId = notification.connect('destroy', Lang.bind(this,
|
||||
function() {
|
||||
if (!this._closed)
|
||||
this.close();
|
||||
@ -1260,6 +1260,10 @@ const NotificationMessage = new Lang.Class({
|
||||
if (this._updatedId)
|
||||
this.notification.disconnect(this._updatedId);
|
||||
this._updatedId = 0;
|
||||
|
||||
if (this._destroyId)
|
||||
this.notification.disconnect(this._destroyId);
|
||||
this._destroyId = 0;
|
||||
}
|
||||
});
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user