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
This commit is contained in:
Dan Winship 2010-09-30 16:56:50 -04:00
parent de16108dff
commit bbdf88cf94

View File

@ -344,14 +344,14 @@ NotificationDaemon.prototype = {
for (let id in this._sources) { for (let id in this._sources) {
let source = this._sources[id]; let source = this._sources[id];
if (source.app == tracker.focus_app) { if (source.app == tracker.focus_app) {
source.destroy(); source.activated();
return; return;
} }
} }
}, },
_actionInvoked: function(notification, action, source, id) { _actionInvoked: function(notification, action, source, id) {
source.destroy(); source.activated();
this._emitActionInvoked(id, action); this._emitActionInvoked(id, action);
}, },
@ -401,6 +401,7 @@ Source.prototype = {
this.title = this.app.get_name(); this.title = this.app.get_name();
else else
this.useNotificationIcon = true; this.useNotificationIcon = true;
this._isTrayIcon = false;
}, },
notify: function(notification, icon) { notify: function(notification, icon) {
@ -427,11 +428,18 @@ Source.prototype = {
setTrayIcon: function(icon) { setTrayIcon: function(icon) {
this._setSummaryIcon(icon); this._setSummaryIcon(icon);
this.useNotificationIcon = false; this.useNotificationIcon = false;
this._isTrayIcon = true;
}, },
_notificationClicked: function() { _notificationClicked: function(notification) {
notification.destroy();
this.openApp(); this.openApp();
this.destroy(); this.activated();
},
activated: function() {
if (!this._isTrayIcon)
this.destroy();
}, },
openApp: function() { openApp: function() {