aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libempathy-gtk/empathy-chat.c13
-rw-r--r--src/empathy-chat-window.c3
2 files changed, 13 insertions, 3 deletions
diff --git a/libempathy-gtk/empathy-chat.c b/libempathy-gtk/empathy-chat.c
index c8ef24809..267cdca2a 100644
--- a/libempathy-gtk/empathy-chat.c
+++ b/libempathy-gtk/empathy-chat.c
@@ -1413,7 +1413,8 @@ chat_message_received (EmpathyChat *chat,
g_object_notify (G_OBJECT (chat), "nb-unread-messages");
}
- g_signal_emit (chat, signals[NEW_MESSAGE], 0, message, pending);
+ g_signal_emit (chat, signals[NEW_MESSAGE], 0, message, pending,
+ should_highlight);
}
/* We received a message so the contact is no longer
@@ -3299,6 +3300,14 @@ empathy_chat_class_init (EmpathyChatClass *klass)
G_TYPE_NONE,
1, G_TYPE_BOOLEAN);
+ /**
+ * EmpathyChat::new-message:
+ * @self: the #EmpathyChat
+ * @message: the new message
+ * @pending: whether the message was in the pending queue when @self
+ * was created
+ * @should_highlight: %TRUE if the message mentions the local user
+ */
signals[NEW_MESSAGE] =
g_signal_new ("new-message",
G_OBJECT_CLASS_TYPE (object_class),
@@ -3307,7 +3316,7 @@ empathy_chat_class_init (EmpathyChatClass *klass)
NULL, NULL,
g_cclosure_marshal_generic,
G_TYPE_NONE,
- 2, EMPATHY_TYPE_MESSAGE, G_TYPE_BOOLEAN);
+ 3, EMPATHY_TYPE_MESSAGE, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN);
signals[PART_COMMAND_ENTERED] =
g_signal_new ("part-command-entered",
diff --git a/src/empathy-chat-window.c b/src/empathy-chat-window.c
index 1bb9de4aa..3e197796d 100644
--- a/src/empathy-chat-window.c
+++ b/src/empathy-chat-window.c
@@ -1437,6 +1437,7 @@ static void
chat_window_new_message_cb (EmpathyChat *chat,
EmpathyMessage *message,
gboolean pending,
+ gboolean should_highlight,
EmpathyChatWindow *window)
{
EmpathyChatWindowPriv *priv;
@@ -1496,7 +1497,7 @@ chat_window_new_message_cb (EmpathyChat *chat,
if (chatroom != NULL && empathy_chatroom_is_always_urgent (chatroom)) {
needs_urgency = TRUE;
} else {
- needs_urgency = empathy_message_should_highlight (message);
+ needs_urgency = should_highlight;
}
} else {
needs_urgency = TRUE;