Mercurial > pidgin.yaz
diff pidgin/gtkconv.c @ 26878:0924698e2362
Add blist-node-(added|removed) and deprecate buddy-(added|removed). Closes #8309
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Sun, 03 May 2009 17:10:51 +0000 |
parents | dbe2731f0a35 |
children | 04af21d4be27 cc45ac2782cc 45795fd9c0a9 |
line wrap: on
line diff
--- a/pidgin/gtkconv.c Sun May 03 06:50:44 2009 +0000 +++ b/pidgin/gtkconv.c Sun May 03 17:10:51 2009 +0000 @@ -4496,19 +4496,26 @@ } static void -buddy_added_cb(PurpleBuddy *buddy, PurpleConversation *conv) -{ - buddy_cb_common(buddy, conv, TRUE); -} - -static void -buddy_removed_cb(PurpleBuddy *buddy, PurpleConversation *conv) -{ +buddy_added_cb(PurpleBlistNode *node, PurpleConversation *conv) +{ + if (!PURPLE_BLIST_NODE_IS_BUDDY(node)) + return; + + buddy_cb_common(PURPLE_BUDDY(node), conv, TRUE); +} + +static void +buddy_removed_cb(PurpleBlistNode *node, PurpleConversation *conv) +{ + if (!PURPLE_BLIST_NODE_IS_BUDDY(node)) + return; + /* If there's another buddy for the same "dude" on the list, do nothing. */ - if (purple_find_buddy(buddy->account, buddy->name) != NULL) + if (purple_find_buddy(purple_buddy_get_account(PURPLE_BUDDY(node)), + purple_buddy_get_name(PURPLE_BUDDY(node))) != NULL) return; - buddy_cb_common(buddy, conv, FALSE); + buddy_cb_common(PURPLE_BUDDY(node), conv, FALSE); } static void send_menu_cb(GtkWidget *widget, PidginConversation *gtkconv) @@ -4747,9 +4754,9 @@ "weight", CHAT_USERS_WEIGHT_COLUMN, NULL); - purple_signal_connect(blist_handle, "buddy-added", + purple_signal_connect(blist_handle, "blist-node-added", gtkchat, PURPLE_CALLBACK(buddy_added_cb), conv); - purple_signal_connect(blist_handle, "buddy-removed", + purple_signal_connect(blist_handle, "blist-node-removed", gtkchat, PURPLE_CALLBACK(buddy_removed_cb), conv); purple_signal_connect(blist_handle, "blist-node-aliased", gtkchat, PURPLE_CALLBACK(blist_node_aliased_cb), conv); @@ -5121,7 +5128,8 @@ GList *list; g_return_if_fail(bnode); - g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(bnode)); + if (!PURPLE_BLIST_NODE_IS_BUDDY(bnode)) + return; for (list = pidgin_conv_windows_get_list(); list; list = list->next) { @@ -8017,9 +8025,9 @@ handle, PURPLE_CALLBACK(account_status_changed_cb), NULL); /* Callbacks to update a conversation */ - purple_signal_connect(blist_handle, "buddy-added", handle, + purple_signal_connect(blist_handle, "blist-node-added", handle, G_CALLBACK(buddy_update_cb), NULL); - purple_signal_connect(blist_handle, "buddy-removed", handle, + purple_signal_connect(blist_handle, "blist-node-removed", handle, G_CALLBACK(buddy_update_cb), NULL); purple_signal_connect(blist_handle, "buddy-signed-on", handle, PURPLE_CALLBACK(update_buddy_sign), "on");