# HG changeset patch # User Mark Doliner # Date 1104132105 0 # Node ID 843ed1f2bf3f5876b58fa8dd23b0e3269f89c41d # Parent f5508fbf6764860f1422a053845fe6c614cd4de8 [gaim-migrate @ 11683] Feature request #1022776, from Kristof Vansant: Clicking on IM in a chat channel, new tab should get focus And of course some minor code cleanup and reuse :-D committer: Tailor Script diff -r f5508fbf6764 -r 843ed1f2bf3f src/blist.c --- a/src/blist.c Mon Dec 27 06:47:04 2004 +0000 +++ b/src/blist.c Mon Dec 27 07:21:45 2004 +0000 @@ -31,6 +31,7 @@ #include "server.h" #include "signals.h" #include "util.h" +#include "value.h" #include "xmlnode.h" #define PATHSIZE 1024 @@ -132,6 +133,8 @@ data = (const char *)value; node = (xmlnode *)user_data; + g_return_if_fail(data != NULL); + child = xmlnode_new_child(node, "component"); xmlnode_set_attrib(child, "name", name); xmlnode_insert_data(child, data, -1); diff -r f5508fbf6764 -r 843ed1f2bf3f src/gtkconv.c --- a/src/gtkconv.c Mon Dec 27 06:47:04 2004 +0000 +++ b/src/gtkconv.c Mon Dec 27 07:21:45 2004 +0000 @@ -1239,18 +1239,21 @@ static void chat_do_im(GaimConversation *conv, const char *who) { + GaimAccount *account; + GaimConnection *gc; GaimPluginProtocolInfo *prpl_info = NULL; char *real_who; - GaimConversation *conv2; - GaimAccount *account; account = gaim_conversation_get_account(conv); - - if(account && account->gc) - prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(account->gc->prpl); - - if(prpl_info && prpl_info->get_cb_real_name) - real_who = prpl_info->get_cb_real_name(account->gc, + g_return_if_fail(account != NULL); + + gc = gaim_account_get_connection(account); + g_return_if_fail(gc != NULL); + + prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl); + + if (prpl_info && prpl_info->get_cb_real_name) + real_who = prpl_info->get_cb_real_name(gc, gaim_conv_chat_get_id(GAIM_CONV_CHAT(conv)), who); else real_who = g_strdup(who); @@ -1258,17 +1261,11 @@ if(!real_who) return; - conv2 = gaim_find_conversation_with_account(GAIM_CONV_IM, real_who, account); - - if (conv2 != NULL) - gaim_conv_window_show(gaim_conversation_get_window(conv2)); - else - conv2 = gaim_conversation_new(GAIM_CONV_IM, account, real_who); + gaim_gtkdialogs_im_with_user(account, real_who); g_free(real_who); } - static void chat_im_button_cb(GtkWidget *widget, GaimConversation *conv) {