]> git.0d.be Git - empathy.git/commitdiff
Make links clickable in presence message and topics
authorXavier Claessens <xclaesse@gmail.com>
Wed, 3 Mar 2010 15:17:37 +0000 (16:17 +0100)
committerXavier Claessens <xclaesse@gmail.com>
Wed, 3 Mar 2010 15:19:49 +0000 (16:19 +0100)
Fixes bug #525576

libempathy-gtk/empathy-chat.c
libempathy-gtk/empathy-contact-widget.c

index bec1d7704fa640ca770a42967a9c2f2347ebe883..4db9e455c4a31a98c4b7e3c38a658588021ba124 100644 (file)
@@ -56,6 +56,7 @@
 #include "empathy-theme-manager.h"
 #include "empathy-smiley-manager.h"
 #include "empathy-ui-utils.h"
+#include "empathy-string-parser.h"
 
 #define DEBUG_FLAG EMPATHY_DEBUG_CHAT
 #include <libempathy/empathy-debug.h>
@@ -1212,7 +1213,12 @@ chat_property_changed_cb (EmpathyTpChat *tp_chat,
                if (EMP_STR_EMPTY (priv->subject)) {
                        gtk_widget_hide (priv->hbox_topic);
                } else {
-                       gtk_label_set_text (GTK_LABEL (priv->label_topic), priv->subject);
+                       gchar *markup_text;
+
+                       markup_text = empathy_add_link_markup (priv->subject);
+                       gtk_label_set_markup (GTK_LABEL (priv->label_topic), markup_text);
+                       g_free (markup_text);
+
                        gtk_widget_show (priv->hbox_topic);
                }
                if (priv->block_events_timeout_id == 0) {
index 9cb493fbe5d3e24a9a87200beca865269251932c..500a387f65e50f78664b609a9bfaa0989d263d14 100644 (file)
@@ -47,6 +47,7 @@
 #include "empathy-avatar-chooser.h"
 #include "empathy-avatar-image.h"
 #include "empathy-ui-utils.h"
+#include "empathy-string-parser.h"
 #include "empathy-kludge-label.h"
 
 #define DEBUG_FLAG EMPATHY_DEBUG_CONTACT
@@ -948,8 +949,21 @@ contact_widget_name_notify_cb (EmpathyContactWidget *information)
 static void
 contact_widget_presence_notify_cb (EmpathyContactWidget *information)
 {
-  gtk_label_set_text (GTK_LABEL (information->label_status),
-      empathy_contact_get_status (information->contact));
+  const gchar *status;
+
+  status = empathy_contact_get_status (information->contact);
+  if (!(information->flags & EMPATHY_CONTACT_WIDGET_FOR_TOOLTIP))
+    {
+      gchar *markup_text;
+
+      markup_text = empathy_add_link_markup (status);
+      gtk_label_set_markup (GTK_LABEL (information->label_status), markup_text);
+      g_free (markup_text);
+  }
+  else {
+    gtk_label_set_text (GTK_LABEL (information->label_status), status);
+  }
+
   gtk_image_set_from_icon_name (GTK_IMAGE (information->image_state),
       empathy_icon_name_for_contact (information->contact),
       GTK_ICON_SIZE_BUTTON);