aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libempathy-gtk/empathy-images.h4
-rw-r--r--libempathy-gtk/empathy-ui-utils.c8
2 files changed, 10 insertions, 2 deletions
diff --git a/libempathy-gtk/empathy-images.h b/libempathy-gtk/empathy-images.h
index c303fe79a..d5fa536b1 100644
--- a/libempathy-gtk/empathy-images.h
+++ b/libempathy-gtk/empathy-images.h
@@ -25,7 +25,9 @@
G_BEGIN_DECLS
#define EMPATHY_IMAGE_OFFLINE "user-offline"
-#define EMPATHY_IMAGE_HIDDEN "user-offline"
+/* user-invisible is not (yet?) in the naming spec but already implemented by
+ * some theme */
+#define EMPATHY_IMAGE_HIDDEN "user-invisible"
#define EMPATHY_IMAGE_AVAILABLE "user-available"
#define EMPATHY_IMAGE_BUSY "user-busy"
#define EMPATHY_IMAGE_AWAY "user-away"
diff --git a/libempathy-gtk/empathy-ui-utils.c b/libempathy-gtk/empathy-ui-utils.c
index d4de211c0..422eb910f 100644
--- a/libempathy-gtk/empathy-ui-utils.c
+++ b/libempathy-gtk/empathy-ui-utils.c
@@ -183,7 +183,13 @@ empathy_icon_name_for_presence (TpConnectionPresenceType presence)
case TP_CONNECTION_PRESENCE_TYPE_EXTENDED_AWAY:
return EMPATHY_IMAGE_EXT_AWAY;
case TP_CONNECTION_PRESENCE_TYPE_HIDDEN:
- return EMPATHY_IMAGE_HIDDEN;
+ if (gtk_icon_theme_has_icon (gtk_icon_theme_get_default (),
+ EMPATHY_IMAGE_HIDDEN))
+ return EMPATHY_IMAGE_HIDDEN;
+
+ /* The 'hidden' icon is not an official one so we fallback to offline if
+ * it's not implemented */
+ return EMPATHY_IMAGE_OFFLINE;
case TP_CONNECTION_PRESENCE_TYPE_OFFLINE:
case TP_CONNECTION_PRESENCE_TYPE_ERROR:
case TP_CONNECTION_PRESENCE_TYPE_UNKNOWN: