Mercurial > pidgin.yaz
diff pidgin/gtkconv.c @ 23189:7e0b815d2133
merge of '45401c961ca97b6dd3675db39ca8d46f5142dada'
and '886c30a3d3006c7497f9e6ce6354ba660e5505bd'
author | Richard Laager <rlaager@wiktel.com> |
---|---|
date | Sun, 25 May 2008 22:06:51 +0000 |
parents | 89713caa9ade |
children | d54bc04bfd31 |
line wrap: on
line diff
--- a/pidgin/gtkconv.c Sun May 25 21:56:36 2008 +0000 +++ b/pidgin/gtkconv.c Sun May 25 22:06:51 2008 +0000 @@ -3153,10 +3153,18 @@ if ((chat == NULL) && (gtkconv->imhtml != NULL)) { GHashTable *components; - components = g_hash_table_new_full(g_str_hash, g_str_equal, - g_free, g_free); - g_hash_table_replace(components, g_strdup("channel"), - g_strdup(conv->name)); + PurpleAccount *account = purple_conversation_get_account(conv); + PurplePlugin *prpl = purple_find_prpl(purple_account_get_protocol_id(account)); + PurplePluginProtocolInfo *prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); + if (PURPLE_PROTOCOL_PLUGIN_HAS_FUNC(prpl_info, chat_info_defaults)) { + components = prpl_info->chat_info_defaults(purple_account_get_connection(account), + purple_conversation_get_name(conv)); + } else { + components = g_hash_table_new_full(g_str_hash, g_str_equal, + g_free, g_free); + g_hash_table_replace(components, g_strdup("channel"), + g_strdup(purple_conversation_get_name(conv))); + } chat = purple_chat_new(conv->account, NULL, components); purple_blist_node_set_flags((PurpleBlistNode *)chat, PURPLE_BLIST_NODE_FLAG_NO_SAVE);