changeset 18575:d767cd75d088

pidgin_accounts_window_hide() should actually dispose of the window. Fixes #2193.
author Daniel Atallah <daniel.atallah@gmail.com>
date Fri, 20 Jul 2007 18:11:26 +0000
parents 94f4048f1380
children 65aef3c97d3a
files pidgin/gtkaccount.c
diffstat 1 files changed, 8 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/pidgin/gtkaccount.c	Fri Jul 20 16:31:39 2007 +0000
+++ b/pidgin/gtkaccount.c	Fri Jul 20 18:11:26 2007 +0000
@@ -504,7 +504,7 @@
 		/* Google Talk default domain hackery! */
 		menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(dialog->protocol_menu));
 		item = gtk_menu_get_active(GTK_MENU(menu));
-		if (value == NULL && g_object_get_data(G_OBJECT(item), "fake") && 
+		if (value == NULL && g_object_get_data(G_OBJECT(item), "fake") &&
 			!strcmp(purple_account_user_split_get_text(split), _("Domain")))
 			value = "gmail.com";
 
@@ -1814,6 +1814,10 @@
 static gint
 accedit_win_destroy_cb(GtkWidget *w, GdkEvent *event, AccountsWindow *dialog)
 {
+	/* Since this is called as the window is closing, we don't need
+	 * pidgin_accounts_window_hide() to also dispose of the window */
+	dialog->window = NULL;
+
 	pidgin_accounts_window_hide();
 
 	return 0;
@@ -1924,8 +1928,6 @@
 static void
 close_accounts_cb(GtkWidget *w, AccountsWindow *dialog)
 {
-	gtk_widget_destroy(dialog->window);
-
 	pidgin_accounts_window_hide();
 }
 
@@ -2401,6 +2403,9 @@
 	if (accounts_window == NULL)
 		return;
 
+	if (accounts_window->window != NULL)
+		gtk_widget_destroy(accounts_window->window);
+
 	purple_signals_disconnect_by_handle(accounts_window);
 	purple_prefs_disconnect_by_handle(accounts_window);