diff pidgin/gtkconv.c @ 18050:2f9eabdc6011

propagate from branch 'im.pidgin.pidgin' (head dcdd8dc5d40cafef802a88f3f713ee1589bc9c41) to branch 'im.pidgin.pidgin.2.1.0' (head b13966c1f1b76ef136a61969fc8bcc68f02b138c)
author Sean Egan <seanegan@gmail.com>
date Wed, 06 Jun 2007 00:23:41 +0000
parents 6b7b13adb9b1 1873848dfddb
children 4ca97b26a8fb
line wrap: on
line diff
--- a/pidgin/gtkconv.c	Tue Jun 05 12:14:38 2007 +0000
+++ b/pidgin/gtkconv.c	Wed Jun 06 00:23:41 2007 +0000
@@ -2846,14 +2846,25 @@
 	GList *list;
 	PidginConversation *gtkconv;
 	PurpleConversation *conv;
-	PurpleBuddy *buddy;
+	PurpleBlistNode *node = NULL;
+	PurpleChat *chat = NULL;
+	PurpleBuddy *buddy = NULL;
 
 	gtkconv = pidgin_conv_window_get_active_gtkconv(win);
 	conv = gtkconv->active_conv;
-	buddy = purple_find_buddy(conv->account, conv->name);
 
 	menu = gtk_item_factory_get_widget(win->menu.item_factory, N_("/Conversation/More"));
 
+	if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT)
+		chat = purple_blist_find_chat(conv->account, conv->name);
+	else
+		buddy = purple_find_buddy(conv->account, conv->name);
+
+	if (chat)
+		node = (PurpleBlistNode *)chat;
+	else if (buddy)
+		node = (PurpleBlistNode *)buddy;
+
 	/* Remove the previous entries */
 	for (list = gtk_container_get_children(GTK_CONTAINER(menu)); list; )
 	{
@@ -2863,12 +2874,11 @@
 	}
 
 	/* Now add the stuff */
-	if (buddy)
+	if (node)
 	{
 		if (purple_account_is_connected(conv->account))
-			pidgin_append_blist_node_proto_menu(menu, conv->account->gc,
-												  (PurpleBlistNode *)buddy);
-		pidgin_append_blist_node_extended_menu(menu, (PurpleBlistNode *)buddy);
+			pidgin_append_blist_node_proto_menu(menu, conv->account->gc, node);
+		pidgin_append_blist_node_extended_menu(menu, node);
 	}
 
 	if ((list = gtk_container_get_children(GTK_CONTAINER(menu))) == NULL)