]> git.0d.be Git - empathy.git/commitdiff
Reset the chat state after receiving an edited message
authorDanielle Madeley <danielle.madeley@collabora.co.uk>
Wed, 25 May 2011 07:13:52 +0000 (17:13 +1000)
committerDanielle Madeley <danielle.madeley@collabora.co.uk>
Mon, 13 Jun 2011 16:04:04 +0000 (17:04 +0100)
libempathy-gtk/empathy-chat.c

index dd4bdf0f8320f44559e09e2f15169ea30664f8ba..5cee9eb0bb139fd8664b48acea9aa542d8c2e6bf 100644 (file)
@@ -1333,6 +1333,9 @@ chat_message_received (EmpathyChat *chat,
        gboolean pending)
 {
        EmpathyChatPriv *priv = GET_PRIV (chat);
+       EmpathyContact  *sender;
+
+       sender = empathy_message_get_sender (message);
 
        if (empathy_message_is_edit (message)) {
                DEBUG ("Editing message '%s' to '%s'",
@@ -1340,13 +1343,7 @@ chat_message_received (EmpathyChat *chat,
                        empathy_message_get_body (message));
 
                empathy_chat_view_edit_message (chat->view, message);
-
-               /* FIXME: do we need to do things like edit the chat state? */
        } else {
-               EmpathyContact  *sender;
-
-               sender = empathy_message_get_sender (message);
-
                DEBUG ("Appending new message '%s' from %s (%d)",
                        empathy_message_get_token (message),
                        empathy_contact_get_alias (sender),
@@ -1354,12 +1351,6 @@ chat_message_received (EmpathyChat *chat,
 
                empathy_chat_view_append_message (chat->view, message);
 
-               /* We received a message so the contact is no longer
-                * composing */
-               chat_state_changed_cb (priv->tp_chat, sender,
-                                      TP_CHANNEL_CHAT_STATE_ACTIVE,
-                                      chat);
-
                if (empathy_message_is_incoming (message)) {
                        priv->unread_messages++;
                        g_object_notify (G_OBJECT (chat), "nb-unread-messages");
@@ -1367,6 +1358,12 @@ chat_message_received (EmpathyChat *chat,
 
                g_signal_emit (chat, signals[NEW_MESSAGE], 0, message, pending);
        }
+
+       /* We received a message so the contact is no longer
+        * composing */
+       chat_state_changed_cb (priv->tp_chat, sender,
+                              TP_CHANNEL_CHAT_STATE_ACTIVE,
+                              chat);
 }
 
 static void