merge of '650a7af9c238b4bc69a756fb74972045dc1561d2'

Sun, 16 Sep 2007 01:40:44 +0000

author
Eoin Coffey <ecoffey@soc.pidgin.im>
date
Sun, 16 Sep 2007 01:40:44 +0000
changeset 20337
ce080531de34
parent 20330
650a7af9c238 (current diff)
parent 20336
bfcf14861801 (diff)
child 20338
8b525d903da2

merge of '650a7af9c238b4bc69a756fb74972045dc1561d2'
and 'bfcf14861801f36ce743e26f7665678d52856f7b'

pidgin/gtkconv.c file | annotate | diff | comparison | revisions
--- a/libpurple/protocols/jabber/jabber.c	Sun Sep 16 01:05:22 2007 +0000
+++ b/libpurple/protocols/jabber/jabber.c	Sun Sep 16 01:40:44 2007 +0000
@@ -141,6 +141,7 @@
 		if(jabber_process_starttls(js, packet))
 			return;
 	} else if(purple_account_get_bool(js->gc->account, "require_tls", FALSE) && !js->gsc) {
+		js->gc->wants_to_die = TRUE;
 		purple_connection_error(js->gc, _("You require encryption, but it is not available on this server."));
 		return;
 	}
--- a/pidgin/gtkconv.c	Sun Sep 16 01:05:22 2007 +0000
+++ b/pidgin/gtkconv.c	Sun Sep 16 01:40:44 2007 +0000
@@ -220,7 +220,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
@@ -8834,15 +8834,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;
 	}

mercurial