calendar: Disconnect signals when resetting notification

Since commit 5fb8d4f730, a NotificationMessage's notification property
is reset to null when the notification is destroyed. However at that
point we still have connected signal handlers around that we'll try
to disconnect later.

Avoid the warnings by disconnecting and resetting the handler IDs at
the same time as the notification.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/308
This commit is contained in:
Florian Müllner 2018-11-23 16:22:45 +01:00 committed by Florian Müllner
parent 945a019974
commit b57832716a

View File

@ -779,6 +779,7 @@ var NotificationMessage = new Lang.Class({
this.notification.destroy(MessageTray.NotificationDestroyedReason.DISMISSED); this.notification.destroy(MessageTray.NotificationDestroyedReason.DISMISSED);
}); });
this._destroyId = notification.connect('destroy', () => { this._destroyId = notification.connect('destroy', () => {
this._disconnectNotificationSignals();
this.notification = null; this.notification = null;
if (!this._closed) if (!this._closed)
this.close(); this.close();
@ -808,7 +809,10 @@ var NotificationMessage = new Lang.Class({
_onDestroy() { _onDestroy() {
this.parent(); this.parent();
this._disconnectNotificationSignals();
},
_disconnectNotificationSignals() {
if (this._updatedId) if (this._updatedId)
this.notification.disconnect(this._updatedId); this.notification.disconnect(this._updatedId);
this._updatedId = 0; this._updatedId = 0;