diff options
author | Xavier Claessens <xclaesse@gmail.com> | 2010-03-03 23:17:37 +0800 |
---|---|---|
committer | Xavier Claessens <xclaesse@gmail.com> | 2010-03-03 23:19:49 +0800 |
commit | 00ab069a55f05f0203bf58f071fa7adc54b6e9ac (patch) | |
tree | 6e22a90dd46661bc1ae69d3e8a06a31adfa47992 /libempathy-gtk | |
parent | 2e9c6f70f0291f84b266915620930d97dec1a467 (diff) | |
download | gsoc2013-empathy-00ab069a55f05f0203bf58f071fa7adc54b6e9ac.tar gsoc2013-empathy-00ab069a55f05f0203bf58f071fa7adc54b6e9ac.tar.gz gsoc2013-empathy-00ab069a55f05f0203bf58f071fa7adc54b6e9ac.tar.bz2 gsoc2013-empathy-00ab069a55f05f0203bf58f071fa7adc54b6e9ac.tar.lz gsoc2013-empathy-00ab069a55f05f0203bf58f071fa7adc54b6e9ac.tar.xz gsoc2013-empathy-00ab069a55f05f0203bf58f071fa7adc54b6e9ac.tar.zst gsoc2013-empathy-00ab069a55f05f0203bf58f071fa7adc54b6e9ac.zip |
Make links clickable in presence message and topics
Fixes bug #525576
Diffstat (limited to 'libempathy-gtk')
-rw-r--r-- | libempathy-gtk/empathy-chat.c | 8 | ||||
-rw-r--r-- | libempathy-gtk/empathy-contact-widget.c | 18 |
2 files changed, 23 insertions, 3 deletions
diff --git a/libempathy-gtk/empathy-chat.c b/libempathy-gtk/empathy-chat.c index bec1d7704..4db9e455c 100644 --- a/libempathy-gtk/empathy-chat.c +++ b/libempathy-gtk/empathy-chat.c @@ -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) { diff --git a/libempathy-gtk/empathy-contact-widget.c b/libempathy-gtk/empathy-contact-widget.c index 9cb493fbe..500a387f6 100644 --- a/libempathy-gtk/empathy-contact-widget.c +++ b/libempathy-gtk/empathy-contact-widget.c @@ -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); |