messageTray: Dispose Source on destruction
Dispose the Source Object when dispose() is called, avoiding that it could be called twice on a destroyed Source. So, notify count changes before destroying the object, and don't emit this twice on destroyNonResidentNotifications (as if a notification is destroyed the property notify will happen in the notification destroy callback anyways). https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559
This commit is contained in:
parent
ed97f61750
commit
4e1492c926
@ -834,10 +834,10 @@ var Source = GObject.registerClass({
|
||||
return;
|
||||
|
||||
this.notifications.splice(index, 1);
|
||||
this.countUpdated();
|
||||
|
||||
if (this.notifications.length == 0)
|
||||
this.destroy();
|
||||
|
||||
this.countUpdated();
|
||||
}
|
||||
|
||||
pushNotification(notification) {
|
||||
@ -891,6 +891,8 @@ var Source = GObject.registerClass({
|
||||
notifications[i].destroy(reason);
|
||||
|
||||
this.emit('destroy', reason);
|
||||
|
||||
this.run_dispose();
|
||||
}
|
||||
|
||||
iconUpdated() {
|
||||
@ -905,8 +907,6 @@ var Source = GObject.registerClass({
|
||||
for (let i = this.notifications.length - 1; i >= 0; i--)
|
||||
if (!this.notifications[i].resident)
|
||||
this.notifications[i].destroy();
|
||||
|
||||
this.countUpdated();
|
||||
}
|
||||
});
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user