comparison 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
comparison
equal deleted inserted replaced
23182:e0bcb8cfda74 23189:7e0b815d2133
3151 chat = g_object_get_data(G_OBJECT(gtkconv->imhtml), "transient_chat"); 3151 chat = g_object_get_data(G_OBJECT(gtkconv->imhtml), "transient_chat");
3152 } 3152 }
3153 3153
3154 if ((chat == NULL) && (gtkconv->imhtml != NULL)) { 3154 if ((chat == NULL) && (gtkconv->imhtml != NULL)) {
3155 GHashTable *components; 3155 GHashTable *components;
3156 components = g_hash_table_new_full(g_str_hash, g_str_equal, 3156 PurpleAccount *account = purple_conversation_get_account(conv);
3157 g_free, g_free); 3157 PurplePlugin *prpl = purple_find_prpl(purple_account_get_protocol_id(account));
3158 g_hash_table_replace(components, g_strdup("channel"), 3158 PurplePluginProtocolInfo *prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
3159 g_strdup(conv->name)); 3159 if (PURPLE_PROTOCOL_PLUGIN_HAS_FUNC(prpl_info, chat_info_defaults)) {
3160 components = prpl_info->chat_info_defaults(purple_account_get_connection(account),
3161 purple_conversation_get_name(conv));
3162 } else {
3163 components = g_hash_table_new_full(g_str_hash, g_str_equal,
3164 g_free, g_free);
3165 g_hash_table_replace(components, g_strdup("channel"),
3166 g_strdup(purple_conversation_get_name(conv)));
3167 }
3160 chat = purple_chat_new(conv->account, NULL, components); 3168 chat = purple_chat_new(conv->account, NULL, components);
3161 purple_blist_node_set_flags((PurpleBlistNode *)chat, 3169 purple_blist_node_set_flags((PurpleBlistNode *)chat,
3162 PURPLE_BLIST_NODE_FLAG_NO_SAVE); 3170 PURPLE_BLIST_NODE_FLAG_NO_SAVE);
3163 g_object_set_data_full(G_OBJECT(gtkconv->imhtml), "transient_chat", 3171 g_object_set_data_full(G_OBJECT(gtkconv->imhtml), "transient_chat",
3164 chat, (GDestroyNotify)purple_blist_remove_chat); 3172 chat, (GDestroyNotify)purple_blist_remove_chat);