[gnome-shell] Remove source icon when a corresponding window is activated
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] Remove source icon when a corresponding window is activated
- Date: Tue, 23 Feb 2010 17:55:08 +0000 (UTC)
commit 4d43424efdb168face0bb9afe8e0527f09637efb
Author: Florian Müllner <fmuellner src gnome org>
Date: Sun Feb 21 06:25:23 2010 +0100
Remove source icon when a corresponding window is activated
Source icons are no longer needed to inform the user about events
having occured in a particular application when (s)he activates the
window - treat that case just as if the user had clicked the source
icon.
https://bugzilla.gnome.org/show_bug.cgi?id=610494
js/ui/messageTray.js | 6 ++++++
js/ui/notificationDaemon.js | 7 +++++++
2 files changed, 13 insertions(+), 0 deletions(-)
---
diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js
index 2907f92..fe7a081 100644
--- a/js/ui/messageTray.js
+++ b/js/ui/messageTray.js
@@ -489,6 +489,12 @@ MessageTray.prototype = {
}
},
+ removeSourceByApp: function(app) {
+ for (let source in this._sources)
+ if (this._sources[source].app == app)
+ this.removeSource(this._sources[source]);
+ },
+
removeNotification: function(notification) {
if (this._notification == notification && (this._notificationState == State.SHOWN || this._notificationState == State.SHOWING)) {
if (this._notificationTimeoutId) {
diff --git a/js/ui/notificationDaemon.js b/js/ui/notificationDaemon.js
index 7f5dfcf..89710d6 100644
--- a/js/ui/notificationDaemon.js
+++ b/js/ui/notificationDaemon.js
@@ -100,6 +100,9 @@ NotificationDaemon.prototype = {
Lang.bind(this, this._lostName));
this._currentNotifications = {};
+
+ Shell.WindowTracker.get_default().connect('notify::focus-app',
+ Lang.bind(this, this._onFocusAppChanged));
},
_acquiredName: function() {
@@ -260,6 +263,10 @@ NotificationDaemon.prototype = {
];
},
+ _onFocusAppChanged: function(tracker) {
+ Main.messageTray.removeSourceByApp(tracker.focus_app);
+ },
+
_actionInvoked: function(notification, action, source, id) {
this._emitActionInvoked(id, action);
source.destroy();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]