]> git.0d.be Git - empathy.git/commitdiff
Show MUC highlight notifications in Gnome Shell
authorWill Thompson <will.thompson@collabora.co.uk>
Wed, 28 Mar 2012 09:06:14 +0000 (10:06 +0100)
committerWill Thompson <will.thompson@collabora.co.uk>
Wed, 28 Mar 2012 09:41:56 +0000 (10:41 +0100)
Gnome Shell filters out notifications from Empathy whose category is
something the Shell shows its own notification for. However, we
previously used the im.received category for notifications about being
highlighted in a MUC, as well as for incoming 1-1 IM notifications. The
Shell filters these out these notifications, because it shows its own
1-1 notifications, but it doesn't show MUC highlight notifications.

So this patch sets a different category on notifications from chat
rooms, which makes them show up in Gnome Shell. I'm prefixing the
category with x-empathy, following the comment above
get_category_for_event_type in empathy-notifications-approver.c.

This shouldn't confuse other notification daemons, unless they were also
filtering out im.received but also showed their own highlight
notifications (which I find unlikely).

https://bugzilla.gnome.org/show_bug.cgi?id=652800

src/empathy-chat-window.c

index f80f096116a8a33a063023181833757a4afd9672..0008fed38a57ca8c85e2ecb8693ab96ae510f065 100644 (file)
@@ -1568,9 +1568,14 @@ chat_window_show_or_update_notification (EmpathyChatWindow *window,
                                EMPATHY_NOTIFY_MANAGER_CAP_X_CANONICAL_APPEND, "1");
                }
 
-               notify_notification_set_hint (notification,
-                       EMPATHY_NOTIFY_MANAGER_CAP_CATEGORY,
-                       g_variant_new_string ("im.received"));
+               {
+                       const gchar *category = empathy_chat_is_room (chat)
+                               ? "x-empathy.im.mentioned"
+                               : "im.received";
+                       notify_notification_set_hint (notification,
+                               EMPATHY_NOTIFY_MANAGER_CAP_CATEGORY,
+                               g_variant_new_string (category));
+               }
        }
 
        pixbuf = empathy_notify_manager_get_pixbuf_for_notification (priv->notify_mgr,