--- a/libhangouts.c Thu Mar 08 09:12:02 2018 +1300
+++ b/libhangouts.c Mon Mar 26 19:33:04 2018 +1300
@@ -322,6 +322,19 @@
static gulong chat_conversation_typing_signal = 0;
+#if !PURPLE_VERSION_CHECK(3, 0, 0) +static gulong deleting_chat_buddy_signal = 0; +// See workaround for purple_chat_conversation_find_user() in purplecompat.h +hangouts_deleting_chat_buddy(PurpleConvChatBuddy *cb) + if (g_dataset_get_data(cb, "chat") != NULL) { hangouts_login(PurpleAccount *account)
@@ -384,6 +397,12 @@
if (!chat_conversation_typing_signal) {
chat_conversation_typing_signal = purple_signal_connect(purple_conversations_get_handle(), "chat-conversation-typing", purple_connection_get_protocol(pc), PURPLE_CALLBACK(hangouts_conv_send_typing), ha);
+#if !PURPLE_VERSION_CHECK(3, 0, 0) + if (!deleting_chat_buddy_signal) { + deleting_chat_buddy_signal = purple_signal_connect(purple_conversations_get_handle(), "deleting-chat-buddy", purple_connection_get_protocol(pc), PURPLE_CALLBACK(hangouts_deleting_chat_buddy), NULL); ha->active_client_timeout = g_timeout_add_seconds(HANGOUTS_ACTIVE_CLIENT_TIMEOUT, ((GSourceFunc) hangouts_set_active_client), pc);
@@ -753,14 +772,6 @@
void _purple_socket_init(void);
void _purple_socket_uninit(void);
-// See workaround for purple_chat_conversation_find_user() in purplecompat.h
-hangouts_deleting_chat_buddy(PurpleConvChatBuddy *cb)
- if (g_dataset_get_data(cb, "chat") != NULL) {
libpurple2_plugin_load(PurplePlugin *plugin)
@@ -768,8 +779,6 @@
- purple_signal_connect(purple_conversations_get_handle(), "deleting-chat-buddy", plugin, PURPLE_CALLBACK(hangouts_deleting_chat_buddy), NULL);
return plugin_load(plugin, NULL);