MessageTray: disconnect signal to notification early

Similar to the previous patch, this adds robustness and prevents more
stacktraces and confusion in the state machine.

https://bugzilla.gnome.org/show_bug.cgi?id=692693
This commit is contained in:
Giovanni Campagna 2013-01-28 12:09:17 +01:00
parent cc60afa31a
commit 4545719e18

View File

@ -2384,11 +2384,18 @@ const MessageTray = new Lang.Class({
this.idleMonitor.disconnect(this._idleMonitorBecameActiveId); this.idleMonitor.disconnect(this._idleMonitorBecameActiveId);
this._idleMonitorBecameActiveId = 0; this._idleMonitorBecameActiveId = 0;
} }
if (this._notificationExpandedId) { if (this._notificationExpandedId) {
this._notification.disconnect(this._notificationExpandedId); this._notification.disconnect(this._notificationExpandedId);
this._notificationExpandedId = 0; this._notificationExpandedId = 0;
} }
if (this._notificationClickedId) {
this._notification.disconnect(this._notificationClickedId);
this._notificationClickedId = 0;
}
if (this._notificationUnfocusedId) {
this._notification.disconnect(this._notificationUnfocusedId);
this._notificationUnfocusedId = 0;
}
if (this._notificationRemoved) { if (this._notificationRemoved) {
Tweener.removeTweens(this._notificationWidget); Tweener.removeTweens(this._notificationWidget);
@ -2411,10 +2418,7 @@ const MessageTray = new Lang.Class({
_hideNotificationCompleted: function() { _hideNotificationCompleted: function() {
this._notification.collapseCompleted(); this._notification.collapseCompleted();
this._notification.disconnect(this._notificationClickedId);
this._notificationClickedId = 0;
this._notification.disconnect(this._notificationUnfocusedId);
this._notificationUnfocusedId = 0;
let notification = this._notification; let notification = this._notification;
this._notification = null; this._notification = null;
if (notification.isTransient) if (notification.isTransient)