aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/ChangeLog7
-rw-r--r--mail/mail-session.c5
2 files changed, 10 insertions, 2 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index c4cc81862f..6592c35127 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,3 +1,10 @@
+2003-05-08 Ettore Perazzoli <ettore@ximian.com>
+
+ * mail-session.c (request_password): Make sure password_dialog is
+ NULLified when the dialog is destroyed in any case, using
+ g_object_add_weak_pointer(). Prevents a crash that could happen
+ if the shell would quit with the password dialog still up.
+
2003-05-07 Jeffrey Stedfast <fejj@ximian.com>
* mail-display.c (mail_display_render): Make sure that we haven't
diff --git a/mail/mail-session.c b/mail/mail-session.c
index 61f4742479..db5695c095 100644
--- a/mail/mail-session.c
+++ b/mail/mail-session.c
@@ -225,9 +225,9 @@ pass_response (GtkDialog *dialog, int button, void *data)
camel_exception_set (m->ex, CAMEL_EXCEPTION_USER_CANCEL, _("User canceled operation."));
break;
}
-
+
gtk_widget_destroy ((GtkWidget *) dialog);
-
+
password_dialog = NULL;
e_msgport_reply ((EMsg *)m);
@@ -985,6 +985,7 @@ mail_session_set_interactive (gboolean interactive)
if (password_dialog) {
d(printf ("Destroying password dialogue\n"));
gtk_widget_destroy ((GtkWidget *) password_dialog);
+ password_dialog = NULL;
}
/* same for pending user messages */