| 4855 { |
4855 { |
| 4856 PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv); |
4856 PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv); |
| 4857 |
4857 |
| 4858 gtkconv->convs = g_list_remove(gtkconv->convs, conv); |
4858 gtkconv->convs = g_list_remove(gtkconv->convs, conv); |
| 4859 /* Don't destroy ourselves until all our convos are gone */ |
4859 /* Don't destroy ourselves until all our convos are gone */ |
| 4860 if (gtkconv->convs) |
4860 if (gtkconv->convs) { |
| |
4861 /* Make sure the destroyed conversation is not the active one */ |
| |
4862 if (gtkconv->active_conv == conv) { |
| |
4863 gtkconv->active_conv = gtkconv->convs->data; |
| |
4864 purple_conversation_update(gtkconv->active_conv, PURPLE_CONV_UPDATE_FEATURES); |
| |
4865 } |
| 4861 return; |
4866 return; |
| |
4867 } |
| 4862 |
4868 |
| 4863 pidgin_conv_window_remove_gtkconv(gtkconv->win, gtkconv); |
4869 pidgin_conv_window_remove_gtkconv(gtkconv->win, gtkconv); |
| 4864 |
4870 |
| 4865 /* If the "Save Conversation" or "Save Icon" dialogs are open then close them */ |
4871 /* If the "Save Conversation" or "Save Icon" dialogs are open then close them */ |
| 4866 purple_request_close_with_handle(gtkconv); |
4872 purple_request_close_with_handle(gtkconv); |