diff options
-rw-r--r-- | mail/ChangeLog | 12 | ||||
-rw-r--r-- | mail/mail-session.c | 19 |
2 files changed, 22 insertions, 9 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog index 667b402042..e4484f7d80 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,5 +1,17 @@ 2003-03-03 Not Zed <NotZed@Ximian.com> + * mail-session.c (do_user_message): Do the same as below for + request_password, so we dont leave a mainloop lying around. + +2003-03-03 Jeffrey Stedfast <fejj@ximian.com> + + * mail-session.c (request_password): Don't connect to the response + signal if we are in the main thread - instead just use the return + value from gtk_dialog_run and then call pass_response() with the + response value. + +2003-03-03 Not Zed <NotZed@Ximian.com> + * subscribe-dialog.c (fe_got_children): Remove the e_tree_memory_sort_node, currently it crashes inside gal, the root node seems to get free'd under it. diff --git a/mail/mail-session.c b/mail/mail-session.c index 8da4d0e415..615c15707e 100644 --- a/mail/mail-session.c +++ b/mail/mail-session.c @@ -261,8 +261,6 @@ request_password (struct _pass_msg *m) password_dialog = (GtkDialog *) gtk_message_dialog_new (NULL, 0, GTK_MESSAGE_QUESTION, GTK_BUTTONS_OK_CANCEL, "%s", m->prompt); - - g_signal_connect (password_dialog, "response", G_CALLBACK (pass_response), m); gtk_window_set_title (GTK_WINDOW (password_dialog), title); g_free (title); @@ -287,10 +285,12 @@ request_password (struct _pass_msg *m) gtk_widget_show (m->check); } - if (m->ismain) - gtk_dialog_run (password_dialog); - else + if (m->ismain) { + pass_response(password_dialog, gtk_dialog_run (password_dialog), m); + } else { + g_signal_connect (password_dialog, "response", G_CALLBACK (pass_response), m); gtk_widget_show ((GtkWidget *) password_dialog); + } } static void @@ -467,11 +467,12 @@ do_user_message (struct _mail_msg *mm) /* We only need to wait for the result if we allow cancel otherwise show but send result back instantly */ if (m->allow_cancel) { - g_signal_connect (message_dialog, "response", G_CALLBACK (user_message_response), m); - if (m->ismain) - gtk_dialog_run (message_dialog); - else + if (m->ismain) { + user_message_response(message_dialog, gtk_dialog_run (message_dialog), m); + } else { + g_signal_connect (message_dialog, "response", G_CALLBACK (user_message_response), m); gtk_widget_show ((GtkWidget *) message_dialog); + } } else { gtk_widget_show ((GtkWidget *) message_dialog); m->result = TRUE; |