[gnome-shell/wip/cosimoc/notification-refactor: 3/3] calendar: do not call destroy() recursively



commit ed7ebc5949ae34cfa8e2c3d4ee69dcb9f2e39d21
Author: Cosimo Cecchi <cosimo endlessm com>
Date:   Wed Oct 10 19:08:38 2018 -0700

    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();
         });


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]