diff options
-rw-r--r-- | mail/ChangeLog | 9 | ||||
-rw-r--r-- | mail/mail-threads.c | 13 | ||||
-rw-r--r-- | mail/test-thread.c | 4 |
3 files changed, 23 insertions, 3 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog index 8584abeda7..bd868a3246 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,12 @@ +2000-08-10 Peter Williams <peterw@helixcode.com> + + * test-thread.c (queue_ops): Use mail_operations_terminate() to + close the other thread nicely. + + * mail-threads.c (get_password_deleted): Handle the "close" event + as a cancel. + (show_error): Same. + 2000-08-10 Dan Winship <danw@helixcode.com> * mail-tools.c (mail_tool_get_folder_from_urlname): Add a diff --git a/mail/mail-threads.c b/mail/mail-threads.c index 7f5e796a51..ab85daf1c6 100644 --- a/mail/mail-threads.c +++ b/mail/mail-threads.c @@ -194,8 +194,9 @@ static void show_error_clicked (GtkObject * obj); static void get_password (com_msg_t * msg); static void get_password_cb (gchar * string, gpointer data); static void get_password_clicked (GnomeDialog * dialog, gint button, - gpointer user_data); +static void get_password_deleted (GtkWidget *widget, gpointer user_data); + static gboolean progress_timeout (gpointer data); static void timeout_toggle (gboolean active); static gboolean display_timeout (gpointer data); @@ -990,6 +991,8 @@ show_error (com_msg_t * msg) err_dialog = gnome_error_dialog (msg->message); gnome_dialog_set_close (GNOME_DIALOG (err_dialog), TRUE); + gtk_signal_connect (GTK_OBJECT (err_dialog), "close", + (GtkSignalFunc) show_error_clicked, NULL); gtk_signal_connect (GTK_OBJECT (err_dialog), "clicked", (GtkSignalFunc) show_error_clicked, NULL); g_free (msg->message); @@ -1055,6 +1058,8 @@ get_password (com_msg_t * msg) gnome_dialog_set_close (GNOME_DIALOG (dialog), TRUE); gtk_signal_connect (GTK_OBJECT (dialog), "clicked", get_password_clicked, msg); + gtk_signal_connect (GTK_OBJECT (dialog), "close", + get_password_deleted, msg); /* Save the old message, but display a new one right now */ gtk_label_get (GTK_LABEL (queue_window_message), &old_message); @@ -1097,6 +1102,12 @@ get_password_cb (gchar * string, gpointer data) } static void +get_password_deleted (GtkWidget *widget, gpointer user_data) +{ + get_password_clicked (GNOME_DIALOG (widget), 1, user_data); +} + +static void get_password_clicked (GnomeDialog * dialog, gint button, gpointer user_data) { com_msg_t *msg = (com_msg_t *) user_data; diff --git a/mail/test-thread.c b/mail/test-thread.c index 7a389605ec..eddf9dd7c8 100644 --- a/mail/test-thread.c +++ b/mail/test-thread.c @@ -70,8 +70,8 @@ static gboolean queue_ops( void ) mail_operation_queue( &spec7, NULL, FALSE ); mail_operation_queue( &spec8, NULL, FALSE ); - g_message( "Waiting for finish AGAIN..." ); - mail_operation_wait_for_finish(); + g_message( "Waiting for finish for the last time..." ); + mail_operations_terminate(); g_message( "Ops done again. Exiting 0" ); gtk_exit( 0 ); return FALSE; |