changeset 5991:5d5bad909bc4

[gaim-migrate @ 6439] This should fix the Cancel All bug for real this time. committer: Tailor Script <tailor@pidgin.im>
author Christian Hammond <chipx86@chipx86.com>
date Wed, 02 Jul 2003 09:44:14 +0000
parents 99fbd0161cb7
children 50624f0d2a25
files src/gtkconn.c
diffstat 1 files changed, 16 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/gtkconn.c	Wed Jul 02 09:26:27 2003 +0000
+++ b/src/gtkconn.c	Wed Jul 02 09:44:14 2003 +0000
@@ -45,13 +45,25 @@
 		GSList *meters;
 } *meter_win = NULL;
 
+static void kill_meter(struct signon_meter *meter, const char *text);
+
 static void cancel_signon(GtkWidget *button, struct signon_meter *meter)
 {
-	if (meter->account->gc == NULL)
-		return;
+	if (meter->account->gc != NULL) {
+		meter->account->gc->wants_to_die = TRUE;
+		gaim_connection_destroy(meter->account->gc);
+	}
+	else {
+		kill_meter(meter, _("Done."));
 
-	meter->account->gc->wants_to_die = TRUE;
-	gaim_connection_destroy(meter->account->gc);
+		if (gaim_connections_get_all() == NULL) {
+			destroy_all_dialogs();
+
+			gaim_blist_destroy();
+
+			show_login();
+		}
+	}
 }
 
 static void cancel_all () {