| 3314 if (!purple_account_is_connected(account)) |
3314 if (!purple_account_is_connected(account)) |
| 3315 return FALSE; |
3315 return FALSE; |
| 3316 |
3316 |
| 3317 buddy = purple_find_buddy(account, purple_conversation_get_name(conv)); |
3317 buddy = purple_find_buddy(account, purple_conversation_get_name(conv)); |
| 3318 |
3318 |
| 3319 /* gotta remain bug-compatible :( libpurple < 2.0.2 didn't handle |
3319 if ((buddy == NULL) && (gtkconv->webview != NULL)) { |
| 3320 * removing "isolated" buddy nodes well */ |
3320 buddy = g_object_get_data(G_OBJECT(gtkconv->webview), "transient_buddy"); |
| 3321 if (purple_version_check(2, 0, 2) == NULL) { |
3321 } |
| 3322 if ((buddy == NULL) && (gtkconv->webview != NULL)) { |
3322 |
| 3323 buddy = g_object_get_data(G_OBJECT(gtkconv->webview), "transient_buddy"); |
3323 if ((buddy == NULL) && (gtkconv->webview != NULL)) { |
| 3324 } |
3324 buddy = purple_buddy_new(account, purple_conversation_get_name(conv), NULL); |
| 3325 |
3325 purple_blist_node_set_flags((PurpleBlistNode *)buddy, |
| 3326 if ((buddy == NULL) && (gtkconv->webview != NULL)) { |
3326 PURPLE_BLIST_NODE_FLAG_NO_SAVE); |
| 3327 buddy = purple_buddy_new(account, purple_conversation_get_name(conv), NULL); |
3327 g_object_set_data_full(G_OBJECT(gtkconv->webview), "transient_buddy", |
| 3328 purple_blist_node_set_flags((PurpleBlistNode *)buddy, |
3328 buddy, (GDestroyNotify)purple_buddy_destroy); |
| 3329 PURPLE_BLIST_NODE_FLAG_NO_SAVE); |
|
| 3330 g_object_set_data_full(G_OBJECT(gtkconv->webview), "transient_buddy", |
|
| 3331 buddy, (GDestroyNotify)purple_buddy_destroy); |
|
| 3332 } |
|
| 3333 } |
3329 } |
| 3334 } |
3330 } |
| 3335 |
3331 |
| 3336 if (chat) |
3332 if (chat) |
| 3337 node = (PurpleBlistNode *)chat; |
3333 node = (PurpleBlistNode *)chat; |