[empathy] Adium: Correctly support action messages (/me)
- From: Xavier Claessens <xclaesse src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [empathy] Adium: Correctly support action messages (/me)
- Date: Wed, 4 May 2011 12:31:08 +0000 (UTC)
commit 3eef7be07ed7873e1f95571082eb6c2319e0b9b3
Author: Xavier Claessens <xclaesse gmail com>
Date: Wed May 4 14:30:02 2011 +0200
Adium: Correctly support action messages (/me)
Fixes bug #649367
libempathy-gtk/empathy-theme-adium.c | 22 +++++++++++++++-------
1 files changed, 15 insertions(+), 7 deletions(-)
---
diff --git a/libempathy-gtk/empathy-theme-adium.c b/libempathy-gtk/empathy-theme-adium.c
index f7f3720..e6cf03c 100644
--- a/libempathy-gtk/empathy-theme-adium.c
+++ b/libempathy-gtk/empathy-theme-adium.c
@@ -667,6 +667,7 @@ theme_adium_append_message (EmpathyChatView *view,
GString *message_classes = NULL;
gboolean is_backlog;
gboolean consecutive;
+ gboolean action;
if (priv->pages_loading != 0) {
GValue *value = tp_g_value_slice_new (EMPATHY_TYPE_MESSAGE);
@@ -687,17 +688,21 @@ theme_adium_append_message (EmpathyChatView *view,
body_escaped = theme_adium_parse_body (theme, body);
name = empathy_contact_get_alias (sender);
contact_id = empathy_contact_get_id (sender);
+ action = (empathy_message_get_tptype (msg) == TP_CHANNEL_TEXT_MESSAGE_TYPE_ACTION);
- /* If this is a /me, append an event */
- if (empathy_message_get_tptype (msg) == TP_CHANNEL_TEXT_MESSAGE_TYPE_ACTION) {
+ /* If this is a /me probably */
+ if (action) {
gchar *str;
- str = g_strdup_printf ("%s %s", name, body_escaped);
- theme_adium_append_event_escaped (view, str);
-
- g_free (str);
+ if (priv->data->version >= 4 || !priv->data->custom_template) {
+ str = g_strdup_printf ("<span class='actionMessageUserName'>%s</span>"
+ "<span class='actionMessageBody'>%s</span>",
+ name, body_escaped);
+ } else {
+ str = g_strdup_printf ("*%s*", body_escaped);
+ }
g_free (body_escaped);
- return;
+ body_escaped = str;
}
/* Get the avatar filename, or a fallback */
@@ -763,6 +768,9 @@ theme_adium_append_message (EmpathyChatView *view,
if (empathy_message_get_tptype (msg) == TP_CHANNEL_TEXT_MESSAGE_TYPE_AUTO_REPLY) {
g_string_append (message_classes, " autoreply");
}
+ if (action) {
+ g_string_append (message_classes, " action");
+ }
/* FIXME: other classes:
* status - the message is a status change
* event - the message is a notification of something happening
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]