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;
|
return;
|
||||||
|
|
||||||
this.notifications.splice(index, 1);
|
this.notifications.splice(index, 1);
|
||||||
|
this.countUpdated();
|
||||||
|
|
||||||
if (this.notifications.length == 0)
|
if (this.notifications.length == 0)
|
||||||
this.destroy();
|
this.destroy();
|
||||||
|
|
||||||
this.countUpdated();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pushNotification(notification) {
|
pushNotification(notification) {
|
||||||
@ -891,6 +891,8 @@ var Source = GObject.registerClass({
|
|||||||
notifications[i].destroy(reason);
|
notifications[i].destroy(reason);
|
||||||
|
|
||||||
this.emit('destroy', reason);
|
this.emit('destroy', reason);
|
||||||
|
|
||||||
|
this.run_dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
iconUpdated() {
|
iconUpdated() {
|
||||||
@ -905,8 +907,6 @@ var Source = GObject.registerClass({
|
|||||||
for (let i = this.notifications.length - 1; i >= 0; i--)
|
for (let i = this.notifications.length - 1; i >= 0; i--)
|
||||||
if (!this.notifications[i].resident)
|
if (!this.notifications[i].resident)
|
||||||
this.notifications[i].destroy();
|
this.notifications[i].destroy();
|
||||||
|
|
||||||
this.countUpdated();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user