[empathy] use user-extended-away status icon in favour of user-idle



commit d06fb95a0ed6337d4897e8f9b0538057dee8c053
Author: Robert McQueen <robert mcqueen collabora co uk>
Date:   Sat May 15 13:54:18 2010 +0100

    use user-extended-away status icon in favour of user-idle
    
    The freedesktop.org icon spec defines that the icon for the extended away
    status is called user-idle. However, some icon theme authors interpret this
    name as meaning mere idleness rather than the intended extended away semantic
    of away *and* idle, creating visual confusion (extended-away contacts appearing
    less away than contacts who are merely away). Some themes contain a
    non-standard user-extended-away icon with the correct semantic, so this patch
    makes Empathy use it in preference to user-idle if available. (Incidentally, at
    the moment Telepathy itself never actually shows remote contacts as idle.)

 libempathy-gtk/empathy-images.h   |    3 ++-
 libempathy-gtk/empathy-ui-utils.c |    8 +++++++-
 2 files changed, 9 insertions(+), 2 deletions(-)
---
diff --git a/libempathy-gtk/empathy-images.h b/libempathy-gtk/empathy-images.h
index 1735438..a668395 100644
--- a/libempathy-gtk/empathy-images.h
+++ b/libempathy-gtk/empathy-images.h
@@ -31,7 +31,8 @@ G_BEGIN_DECLS
 #define EMPATHY_IMAGE_AVAILABLE           "user-available"
 #define EMPATHY_IMAGE_BUSY                "user-busy"
 #define EMPATHY_IMAGE_AWAY                "user-away"
-#define EMPATHY_IMAGE_EXT_AWAY            "user-idle"
+#define EMPATHY_IMAGE_EXT_AWAY            "user-extended-away"
+#define EMPATHY_IMAGE_IDLE                "user-idle"
 #define EMPATHY_IMAGE_PENDING             "empathy-pending"
 
 #define EMPATHY_IMAGE_MESSAGE             "im-message"
diff --git a/libempathy-gtk/empathy-ui-utils.c b/libempathy-gtk/empathy-ui-utils.c
index ff7ed34..586eaee 100644
--- a/libempathy-gtk/empathy-ui-utils.c
+++ b/libempathy-gtk/empathy-ui-utils.c
@@ -182,7 +182,13 @@ empathy_icon_name_for_presence (TpConnectionPresenceType presence)
 	case TP_CONNECTION_PRESENCE_TYPE_AWAY:
 		return EMPATHY_IMAGE_AWAY;
 	case TP_CONNECTION_PRESENCE_TYPE_EXTENDED_AWAY:
-		return EMPATHY_IMAGE_EXT_AWAY;
+		if (gtk_icon_theme_has_icon (gtk_icon_theme_get_default (),
+					     EMPATHY_IMAGE_EXT_AWAY))
+			return EMPATHY_IMAGE_EXT_AWAY;
+
+		/* The 'extended-away' icon is not an official one so we fallback to idle if
+		 * it's not implemented */
+		return EMPATHY_IMAGE_IDLE;
 	case TP_CONNECTION_PRESENCE_TYPE_HIDDEN:
 		if (gtk_icon_theme_has_icon (gtk_icon_theme_get_default (),
 					     EMPATHY_IMAGE_HIDDEN))



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]