diff options
-rw-r--r-- | mail/ChangeLog | 7 | ||||
-rw-r--r-- | mail/mail-session.c | 5 |
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 */ |