changeset 20078:8c33d2e73060

merge of '13c22e794b21817fd09887f5a0d20def762f5203' and '8f765c8b1620e8ac488e2be4e987153c51ba2f0a'
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Sat, 15 Sep 2007 23:40:00 +0000
parents fee0eea83e58 (diff) 669c152c0290 (current diff)
children 3e3246eb204c 2fefc7eaa36f
files libpurple/protocols/jabber/.todo libpurple/protocols/oscar/.todo pidgin/gtkconv.c
diffstat 1 files changed, 5 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/pidgin/gtkconv.c	Sat Sep 15 22:43:17 2007 +0000
+++ b/pidgin/gtkconv.c	Sat Sep 15 23:40:00 2007 +0000
@@ -219,7 +219,7 @@
 }
 
 static gboolean
-close_conv_cb(GtkWidget *w, GdkEventButton *event, PidginConversation *gtkconv)
+close_conv_cb(GtkWidget *w, GdkEventButton *dontuse, PidginConversation *gtkconv)
 {
 	/* We are going to destroy the conversations immediately only if the 'close immediately'
 	 * preference is selected. Otherwise, close the conversation after a reasonable timeout
@@ -8833,15 +8833,10 @@
 
 	if (win->gtkconvs) {
 		while (win->gtkconvs) {
-			GList *nextgtk = win->gtkconvs->next;
-			PidginConversation *gtkconv = win->gtkconvs->data;
-			GList *nextcore = gtkconv->convs->next;
-			PurpleConversation *conv = gtkconv->convs->data;
-			purple_conversation_destroy(conv);
-			if (!nextgtk && !nextcore)
-			/* we'll end up invoking ourselves when we destroy our last child */
-			/* so don't destroy ourselves right now */
-				return;
+			gboolean last = (win->gtkconvs->next == NULL);
+			close_conv_cb(NULL, NULL, win->gtkconvs->data);
+			if (last)
+				break;
 		}
 		return;
 	}