From 343f36cffe95db2943ba897b83bbb88a6c25c366 Mon Sep 17 00:00:00 2001 From: 3 Date: Tue, 23 Oct 2001 06:28:27 +0000 Subject: Completely re-done. We now hae a completely async dialogue when requested 2001-10-23 * mail-session.c (get_password): Completely re-done. We now hae a completely async dialogue when requested from antoehr thread, and dont use gtk_main() if we can avoid it (which is normally the case). This stuff is only partially finished, and will mena the removal of the same from mail-mt.c, and the mail_user_message() code will be moved here and changed to work in a similar way. * mail-callbacks.c (empty_trash): Dont try and connect to remote stores just to get the trash. Also, always run empty trash async, and make sure we unref the trash. (empty_trash): Hmm, dont unref the trash, causes a problem on exit, i suspect something else is doing funky unrefs on it. * mail-tools.c (mail_tool_get_trash): Pass a 'connect' arg, tell it whether it should tryand connect or not to the parent service, if it isn't already connected. * component-factory.c (owner_unset_cb): Dont try wait_all here, could potentially deadlock. (idle_quit): Keep returning TRUE if we have outstanding processing. Note that this may busy-wait during exit processign with busy tasks :( (idle_quit): Keep calling ourselves till we no longer get called (i.e. gtk_main really quits). * mail-mt.c (mail_msg_active): New function, returns TRUE if events are still active/outstanding. (do_op_status): @$@$#@@!#@!! didn't unlock the mail_msg_lock if data->activity was NULL and we had no global_shell_client anymore! Also shortcut processing if this is going to be the case. (mail_msg_init): Setup a temporary other gui_port for redoing with new semantics password, user message and progress reporting. (mail_get_password): #ifdef'd out all this code temporarily, till it gets fully moved to mail-session.c 2001-10-22 * component-factory.c (owner_set_cb): Dont call enable_interaction here. (interactive_cb): But here instead, let the shell tell us when its ok to go interactive. svn path=/trunk/; revision=13933 --- mail/mail-callbacks.c | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) (limited to 'mail/mail-callbacks.c') diff --git a/mail/mail-callbacks.c b/mail/mail-callbacks.c index 2b7176aef3..f2e9db08fe 100644 --- a/mail/mail-callbacks.c +++ b/mail/mail-callbacks.c @@ -2391,13 +2391,9 @@ empty_trash (BonoboUIComponent *uih, void *user_data, const char *path) CamelFolder *vtrash; FolderBrowser *fb; CamelException ex; - gboolean async; fb = user_data ? FOLDER_BROWSER (user_data) : NULL; - /* the only time all three args are NULL is for empty-on-exit */ - async = !(uih == NULL && fb == NULL && path == NULL); - if (fb && !confirm_expunge (fb)) return; @@ -2415,13 +2411,10 @@ empty_trash (BonoboUIComponent *uih, void *user_data, const char *path) /* make sure this store is a remote store */ if (provider->flags & CAMEL_PROVIDER_IS_STORAGE && provider->flags & CAMEL_PROVIDER_IS_REMOTE) { - vtrash = mail_tool_get_trash (account->source->url, &ex); + vtrash = mail_tool_get_trash (account->source->url, FALSE, &ex); if (vtrash) { - if (async) - mail_expunge_folder (vtrash, empty_trash_expunged_cb, NULL); - else - camel_folder_sync (vtrash, TRUE, NULL); + mail_expunge_folder (vtrash, empty_trash_expunged_cb, NULL); } } } @@ -2433,12 +2426,9 @@ empty_trash (BonoboUIComponent *uih, void *user_data, const char *path) } /* Now empty the local trash folder */ - vtrash = mail_tool_get_trash ("file:/", &ex); + vtrash = mail_tool_get_trash ("file:/", TRUE, &ex); if (vtrash) { - if (async) - mail_expunge_folder (vtrash, empty_trash_expunged_cb, NULL); - else - camel_folder_sync (vtrash, TRUE, NULL); + mail_expunge_folder (vtrash, empty_trash_expunged_cb, NULL); } camel_exception_clear (&ex); -- cgit v1.2.3