From 272876d2bdd283904ca2beca312dd697334535ba Mon Sep 17 00:00:00 2001 From: vitalyster Date: Tue, 2 Jun 2015 10:02:27 +0200 Subject: [PATCH] libpurple: update unseen count in conversation on active XMPP chatstate --- backends/libpurple/main.cpp | 5 +++++ backends/libpurple/purple_defs.h | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/backends/libpurple/main.cpp b/backends/libpurple/main.cpp index 62459980..4af24182 100644 --- a/backends/libpurple/main.cpp +++ b/backends/libpurple/main.cpp @@ -635,6 +635,11 @@ class SpectrumNetworkPlugin : public NetworkPlugin { PurpleAccount *account = m_sessions[user]; if (account) { serv_send_typing_wrapped(purple_account_get_connection_wrapped(account), buddyName.c_str(), PURPLE_NOT_TYPING); + PurpleConversation *conv = purple_find_conversation_with_account_wrapped(PURPLE_CONV_TYPE_CHAT, buddyName.c_str(), account); + if (conv) { + purple_conversation_set_data_wrapped(conv, "unseen_count", 0); + purple_conversation_update_wrapped(conv, PURPLE_CONV_UPDATE_UNSEEN); + } } } diff --git a/backends/libpurple/purple_defs.h b/backends/libpurple/purple_defs.h index f62185a4..56607ea0 100644 --- a/backends/libpurple/purple_defs.h +++ b/backends/libpurple/purple_defs.h @@ -224,6 +224,12 @@ extern purple_conversation_new_wrapped_fnc purple_conversation_new_wrapped; typedef PurpleConversationType (_cdecl * purple_conversation_get_type_wrapped_fnc)(const PurpleConversation *conv); extern purple_conversation_get_type_wrapped_fnc purple_conversation_get_type_wrapped; +typedef void (_cdecl * purple_conversation_set_data_wrapped_func)(const PurpleConversation *conv, const char *key, gpointer data); +extern purple_conversation_set_data_wrapped_func purple_conversation_set_data_wrapped; + +typedef void (_cdecl * purple_conversation_update_wrapped_func)(const PurpleConversation *conv, PurpleConversationUpdateType type); +extern purple_conversation_update_wrapped_func purple_conversation_update_wrapped; + typedef void (_cdecl * purple_conv_im_send_wrapped_fnc)(PurpleConvIm *im, const char *message); extern purple_conv_im_send_wrapped_fnc purple_conv_im_send_wrapped; @@ -524,6 +530,8 @@ extern wpurple_g_io_channel_win32_new_socket_wrapped_fnc wpurple_g_io_channel_wi #define purple_find_conversation_with_account_wrapped purple_find_conversation_with_account #define purple_conversation_new_wrapped purple_conversation_new #define purple_conversation_get_type_wrapped purple_conversation_get_type +#define purple_conversation_set_data_wrapped purple_conversation_set_data +#define purple_conversation_update_wrapped purple_conversation_update #define purple_conv_im_send_wrapped purple_conv_im_send #define purple_conv_chat_send_wrapped purple_conv_chat_send #define purple_conversation_destroy_wrapped purple_conversation_destroy