aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/ChangeLog9
-rw-r--r--mail/mail-threads.c13
-rw-r--r--mail/test-thread.c4
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;