diff --git a/backends/libpurple/main.cpp b/backends/libpurple/main.cpp index 62459980..cce1f000 100644 --- a/backends/libpurple/main.cpp +++ b/backends/libpurple/main.cpp @@ -518,7 +518,11 @@ class SpectrumNetworkPlugin : public NetworkPlugin { } m_vcards[user + name] = id; - if (CONFIG_BOOL(config, "backend.no_vcard_fetch") && name != purple_account_get_username_wrapped(account)) { + PurplePlugin *prpl = purple_find_prpl_wrapped(purple_account_get_protocol_id_wrapped(account)); + PurplePluginProtocolInfo *prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); + bool support_get_info = prpl_info && prpl_info->get_info; + + if (!support_get_info || (CONFIG_BOOL(config, "backend.no_vcard_fetch") && name != purple_account_get_username_wrapped(account))) { PurpleNotifyUserInfo *user_info = purple_notify_user_info_new_wrapped(); notify_user_info(purple_account_get_connection_wrapped(account), name.c_str(), user_info); purple_notify_user_info_destroy_wrapped(user_info); @@ -526,7 +530,6 @@ class SpectrumNetworkPlugin : public NetworkPlugin { else { serv_get_info_wrapped(purple_account_get_connection_wrapped(account), name.c_str()); } - } } @@ -635,6 +638,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 diff --git a/backends/twitter/libtwitcurl/twitcurl.cpp b/backends/twitter/libtwitcurl/twitcurl.cpp index 23abe312..2af67103 100644 --- a/backends/twitter/libtwitcurl/twitcurl.cpp +++ b/backends/twitter/libtwitcurl/twitcurl.cpp @@ -1,5 +1,4 @@ #define NOMINMAX -#include #include #include "twitcurlurls.h" #include "twitcurl.h" diff --git a/cmake_modules/eventConfig.cmake b/cmake_modules/eventConfig.cmake index 263c0e0a..aba77891 100644 --- a/cmake_modules/eventConfig.cmake +++ b/cmake_modules/eventConfig.cmake @@ -1,4 +1,4 @@ -FIND_PATH(EVENT_INCLUDE_DIRS event.h PATH_SUFFIXES libev) +FIND_PATH(EVENT_INCLUDE_DIRS event.h ev.h PATH_SUFFIXES libev) SET(EVENT_NAMES ${EVENT_NAMES} ev libev) FIND_LIBRARY(EVENT_LIBRARIES NAMES ${EVENT_NAMES} PATH) diff --git a/plugin/python/NetworkPlugin.py b/plugin/python/NetworkPlugin.py index 717731fe..a9a20da2 100644 --- a/plugin/python/NetworkPlugin.py +++ b/plugin/python/NetworkPlugin.py @@ -319,7 +319,7 @@ class NetworkPlugin: return wrapper = protocol_pb2.WrapperMessage() - if (wrapper.ParseFromString(self.m_data[4:]) == False): + if (wrapper.ParseFromString(self.m_data[4:expected_size+4]) == False): self.m_data = self.m_data[expected_size+4:] return