From bbdf88cf94eb822003315dc202aa52256f8e15e8 Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Thu, 30 Sep 2010 16:56:50 -0400 Subject: [PATCH] NotificationDaemon: don't destroy trayicons when dismissing their notifications Tray icons control their own lifespan; they're not supposed to disappear when you dismiss their notifications like non-trayicon notification sources do. https://bugzilla.gnome.org/show_bug.cgi?id=631042 --- js/ui/notificationDaemon.js | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/js/ui/notificationDaemon.js b/js/ui/notificationDaemon.js index 3e0bd6b46..59c48d59f 100644 --- a/js/ui/notificationDaemon.js +++ b/js/ui/notificationDaemon.js @@ -344,14 +344,14 @@ NotificationDaemon.prototype = { for (let id in this._sources) { let source = this._sources[id]; if (source.app == tracker.focus_app) { - source.destroy(); + source.activated(); return; } } }, _actionInvoked: function(notification, action, source, id) { - source.destroy(); + source.activated(); this._emitActionInvoked(id, action); }, @@ -401,6 +401,7 @@ Source.prototype = { this.title = this.app.get_name(); else this.useNotificationIcon = true; + this._isTrayIcon = false; }, notify: function(notification, icon) { @@ -427,11 +428,18 @@ Source.prototype = { setTrayIcon: function(icon) { this._setSummaryIcon(icon); this.useNotificationIcon = false; + this._isTrayIcon = true; }, - _notificationClicked: function() { + _notificationClicked: function(notification) { + notification.destroy(); this.openApp(); - this.destroy(); + this.activated(); + }, + + activated: function() { + if (!this._isTrayIcon) + this.destroy(); }, openApp: function() {