From 5fb8d4f730a176cb55e8e6c11072595972be6485 Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Wed, 10 Oct 2018 19:08:38 -0700 Subject: [PATCH] calendar: do not call destroy() recursively We have a callback that will call close() when the notification is destroyed, and a callback that will call destroy() on the notification when the message is closed. Currently, if the notification is destroyed we'll execute our callback that will call again destroy() on the notification. That's bad practice in general, and it also has the side effect of resetting the destroy reason. This commit avoids re-destroying the notification by dropping the notification reference on destroy. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/258 --- js/ui/calendar.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/js/ui/calendar.js b/js/ui/calendar.js index 241a91db4..432986391 100644 --- a/js/ui/calendar.js +++ b/js/ui/calendar.js @@ -773,9 +773,11 @@ var NotificationMessage = new Lang.Class({ this.connect('close', () => { this._closed = true; - this.notification.destroy(MessageTray.NotificationDestroyedReason.DISMISSED); + if (this.notification) + this.notification.destroy(MessageTray.NotificationDestroyedReason.DISMISSED); }); this._destroyId = notification.connect('destroy', () => { + this.notification = null; if (!this._closed) this.close(); });