diff options
author | Xavier Claessens <xclaesse@src.gnome.org> | 2009-01-31 01:07:26 +0800 |
---|---|---|
committer | Xavier Claessens <xclaesse@src.gnome.org> | 2009-01-31 01:07:26 +0800 |
commit | 3eb84c8a0312fd0d1be89b091d8d6a4dd315d3d9 (patch) | |
tree | 493b443b93bdd6d75d4386c8299a4b5f5e9c39bb /src/empathy-status-icon.c | |
parent | 973bc4d1197ab108f0236ac2baf48678f20fb2aa (diff) | |
download | gsoc2013-empathy-3eb84c8a0312fd0d1be89b091d8d6a4dd315d3d9.tar gsoc2013-empathy-3eb84c8a0312fd0d1be89b091d8d6a4dd315d3d9.tar.gz gsoc2013-empathy-3eb84c8a0312fd0d1be89b091d8d6a4dd315d3d9.tar.bz2 gsoc2013-empathy-3eb84c8a0312fd0d1be89b091d8d6a4dd315d3d9.tar.lz gsoc2013-empathy-3eb84c8a0312fd0d1be89b091d8d6a4dd315d3d9.tar.xz gsoc2013-empathy-3eb84c8a0312fd0d1be89b091d8d6a4dd315d3d9.tar.zst gsoc2013-empathy-3eb84c8a0312fd0d1be89b091d8d6a4dd315d3d9.zip |
Implement a logic for disabling notifications when away.
svn path=/trunk/; revision=2282
Diffstat (limited to 'src/empathy-status-icon.c')
-rw-r--r-- | src/empathy-status-icon.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/empathy-status-icon.c b/src/empathy-status-icon.c index a1d3704ea..ea407fd81 100644 --- a/src/empathy-status-icon.c +++ b/src/empathy-status-icon.c @@ -222,7 +222,10 @@ status_icon_event_added_cb (EmpathyEventManager *manager, status_icon_update_icon (icon); status_icon_update_tooltip (icon); - status_icon_update_notification (icon); + + if (empathy_notification_should_show ()) { + status_icon_update_notification (icon); + } if (!priv->blink_timeout) { priv->blink_timeout = g_timeout_add (BLINK_TIMEOUT, @@ -246,6 +249,10 @@ status_icon_event_removed_cb (EmpathyEventManager *manager, status_icon_update_tooltip (icon); status_icon_update_icon (icon); + + /* update notification anyway, as it's safe and we might have been + * changed presence in the meanwhile + */ status_icon_update_notification (icon); if (!priv->event && priv->blink_timeout) { @@ -325,8 +332,20 @@ status_icon_toggle_visibility (EmpathyStatusIcon *icon) static void status_icon_idle_notify_cb (EmpathyStatusIcon *icon) { + EmpathyStatusIconPriv *priv = GET_PRIV (icon); + status_icon_update_icon (icon); status_icon_update_tooltip (icon); + + if (!empathy_notification_should_show ()) { + /* dismiss the outstanding notification if present */ + + if (priv->notification) { + notify_notification_close (priv->notification, NULL); + g_object_unref (priv->notification); + priv->notification = NULL; + } + } } static gboolean |