diff options
-rw-r--r-- | libempathy-gtk/empathy-chat.c | 7 | ||||
-rw-r--r-- | libempathy-gtk/empathy-chat.h | 2 | ||||
-rw-r--r-- | src/empathy-chat-window.c | 17 |
3 files changed, 11 insertions, 15 deletions
diff --git a/libempathy-gtk/empathy-chat.c b/libempathy-gtk/empathy-chat.c index 295615413..36b0896d9 100644 --- a/libempathy-gtk/empathy-chat.c +++ b/libempathy-gtk/empathy-chat.c @@ -3429,3 +3429,10 @@ empathy_chat_messages_read (EmpathyChat *self) } priv->unread_messages = 0; } + +/* Return TRUE if on of the contacts in this chat is composing */ +gboolean +empathy_chat_is_composing (EmpathyChat *chat) +{ + return chat->priv->compositors != NULL; +} diff --git a/libempathy-gtk/empathy-chat.h b/libempathy-gtk/empathy-chat.h index 596b83f5d..01b7a737b 100644 --- a/libempathy-gtk/empathy-chat.h +++ b/libempathy-gtk/empathy-chat.h @@ -89,6 +89,8 @@ void empathy_chat_set_show_contacts (EmpathyChat *chat, guint empathy_chat_get_nb_unread_messages (EmpathyChat *chat); void empathy_chat_messages_read (EmpathyChat *self); + +gboolean empathy_chat_is_composing (EmpathyChat *chat); G_END_DECLS #endif /* __EMPATHY_CHAT_H__ */ diff --git a/src/empathy-chat-window.c b/src/empathy-chat-window.c index 1a7c2aa0e..f764df513 100644 --- a/src/empathy-chat-window.c +++ b/src/empathy-chat-window.c @@ -75,7 +75,6 @@ typedef struct { EmpathyChat *current_chat; GList *chats; GList *chats_new_msg; - GList *chats_composing; gboolean page_added; gboolean dnd_same_window; EmpathyChatroomManager *chatroom_manager; @@ -668,7 +667,7 @@ chat_window_update_chat_tab (EmpathyChat *chat) else if (g_list_find (priv->chats_new_msg, chat)) { icon_name = EMPATHY_IMAGE_MESSAGE; } - else if (g_list_find (priv->chats_composing, chat)) { + else if (empathy_chat_is_composing (chat)) { icon_name = EMPATHY_IMAGE_TYPING; } else if (remote_contact) { @@ -713,7 +712,7 @@ chat_window_update_chat_tab (EmpathyChat *chat) _("Topic:"), subject); } - if (g_list_find (priv->chats_composing, chat)) { + if (empathy_chat_is_composing (chat)) { append_markup_printf (tooltip, "\n%s", _("Typing a message.")); } @@ -1242,16 +1241,6 @@ chat_window_composing_cb (EmpathyChat *chat, gboolean is_composing, EmpathyChatWindow *window) { - EmpathyChatWindowPriv *priv; - - priv = GET_PRIV (window); - - if (is_composing && !g_list_find (priv->chats_composing, chat)) { - priv->chats_composing = g_list_prepend (priv->chats_composing, chat); - } else { - priv->chats_composing = g_list_remove (priv->chats_composing, chat); - } - chat_window_update_chat_tab (chat); } @@ -1630,7 +1619,6 @@ chat_window_page_removed_cb (GtkNotebook *notebook, priv->chats = g_list_remove (priv->chats, chat); priv->chats_new_msg = g_list_remove (priv->chats_new_msg, chat); empathy_chat_messages_read (chat); - priv->chats_composing = g_list_remove (priv->chats_composing, chat); if (priv->chats == NULL) { g_object_unref (window); @@ -2104,7 +2092,6 @@ empathy_chat_window_init (EmpathyChatWindow *window) /* Set up private details */ priv->chats = NULL; priv->chats_new_msg = NULL; - priv->chats_composing = NULL; priv->current_chat = NULL; priv->notification = NULL; |