[gnome-shell] Make sure we only emit 'destroy' for a notification once



commit 7369ea61254ecf3de82a251a77eeb0b6ac57527e
Author: Marina Zhurakhinskaya <marinaz redhat com>
Date:   Sun Jan 30 18:33:49 2011 -0500

    Make sure we only emit 'destroy' for a notification once
    
    There are multiple code passes that can result in Notification::destroy()
    being called, such as a notification being closed by the application
    when it exits and the associated source being removed at the same time.
    However, we should only emit 'destroy' for the notification and
    do the associated work once.

 js/ui/messageTray.js |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)
---
diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js
index 81997df..baa11f0 100644
--- a/js/ui/messageTray.js
+++ b/js/ui/messageTray.js
@@ -254,6 +254,7 @@ Notification.prototype = {
         // 'transient' is a reserved keyword in JS, so we have to use an alternate variable name
         this.isTransient = false;
         this.expanded = false;
+        this._destroyed = false;
         this._useActionIcons = false;
         this._customContent = false;
         this._bannerBodyText = null;
@@ -771,6 +772,9 @@ Notification.prototype = {
     },
 
     destroy: function(reason) {
+        if (this._destroyed)
+            return;
+        this._destroyed = true;
         if (!reason)
             reason = NotificationDestroyedReason.DISMISSED;
         this.emit('destroy', reason);



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