From 8798ec653d9f29af0f7fe80a90465557e24d98c6 Mon Sep 17 00:00:00 2001 From: Neha Doijode Date: Tue, 22 Mar 2011 02:56:04 +0530 Subject: [PATCH] NotificationDaemon: don't notify for resident notifications when application is focused The applications have to have a way of keeping resident notifications updated without unnecessarily notifying the user with the information the user is already seeing in the application window. https://bugzilla.gnome.org/show_bug.cgi?id=630847 --- js/ui/notificationDaemon.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/js/ui/notificationDaemon.js b/js/ui/notificationDaemon.js index 2a59d9833..e807af486 100644 --- a/js/ui/notificationDaemon.js +++ b/js/ui/notificationDaemon.js @@ -346,7 +346,7 @@ NotificationDaemon.prototype = { notification.setTransient(hints['transient'] == true); let sourceIconActor = source.useNotificationIcon ? this._iconForNotificationData(icon, hints, source.ICON_SIZE) : null; - source.notify(notification, sourceIconActor); + source.processNotification(notification, sourceIconActor); }, CloseNotification: function(id) { @@ -445,12 +445,17 @@ Source.prototype = { this._trayIcon = null; }, - notify: function(notification, icon) { + processNotification: function(notification, icon) { if (!this.app) this._setApp(); if (!this.app && icon) this._setSummaryIcon(icon); - MessageTray.Source.prototype.notify.call(this, notification); + + let tracker = Shell.WindowTracker.get_default(); + if (notification.resident && this.app && tracker.focus_app == this.app) + this.pushNotification(notification); + else + this.notify(notification); }, handleSummaryClick: function() {