aboutsummaryrefslogtreecommitdiffstats
path: root/mail/mail-send-recv.c
diff options
context:
space:
mode:
authorJeffrey Stedfast <fejj@ximian.com>2001-01-26 05:48:56 +0800
committerJeffrey Stedfast <fejj@src.gnome.org>2001-01-26 05:48:56 +0800
commit09e274295f6174991a1dd684160b3902b25eeb35 (patch)
tree9f4e0c575783b48aee171278e216dd95bb100c54 /mail/mail-send-recv.c
parent5cfbfa3428dc0225cbae195ee3a15760fb74a7cc (diff)
downloadgsoc2013-evolution-09e274295f6174991a1dd684160b3902b25eeb35.tar
gsoc2013-evolution-09e274295f6174991a1dd684160b3902b25eeb35.tar.gz
gsoc2013-evolution-09e274295f6174991a1dd684160b3902b25eeb35.tar.bz2
gsoc2013-evolution-09e274295f6174991a1dd684160b3902b25eeb35.tar.lz
gsoc2013-evolution-09e274295f6174991a1dd684160b3902b25eeb35.tar.xz
gsoc2013-evolution-09e274295f6174991a1dd684160b3902b25eeb35.tar.zst
gsoc2013-evolution-09e274295f6174991a1dd684160b3902b25eeb35.zip
The following fixes seem to clear up the problem of new mail not being
2001-01-25 Jeffrey Stedfast <fejj@ximian.com> The following fixes seem to clear up the problem of new mail not being shown in the Inbox and/or other folders where mail had been delivered. * mail-send-recv.c (build_dialogue): Freeze the inbox. (receive_get_folder): Freeze folders before dumping them into the hash table. (free_folder_info): Thaw the folder. (free_info_data): Thaw the Inbox. svn path=/trunk/; revision=7824
Diffstat (limited to 'mail/mail-send-recv.c')
-rw-r--r--mail/mail-send-recv.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/mail/mail-send-recv.c b/mail/mail-send-recv.c
index 56ee820c49..6b375f2a1b 100644
--- a/mail/mail-send-recv.c
+++ b/mail/mail-send-recv.c
@@ -111,6 +111,7 @@ receive_cancel(GtkButton *button, struct _send_info *info)
static void
free_folder_info(void *key, struct _folder_info *info, void *data)
{
+ camel_folder_thaw (info->folder);
camel_object_unref((CamelObject *)info->folder);
g_free(info->uri);
}
@@ -132,8 +133,10 @@ free_info_data(void *datain)
g_hash_table_foreach(data->folders, (GHFunc)free_folder_info, NULL);
g_hash_table_destroy(data->folders);
g_mutex_free(data->lock);
- if (data->inbox)
+ if (data->inbox) {
+ camel_folder_thaw (data->inbox);
camel_object_unref((CamelObject *)data->inbox);
+ }
g_free(data);
}
@@ -179,6 +182,7 @@ static struct _send_data *build_dialogue(GSList *sources, CamelFolder *outbox, c
data->lock = g_mutex_new();
data->folders = g_hash_table_new(g_str_hash, g_str_equal);
data->inbox = mail_tool_get_local_inbox(NULL);
+ camel_folder_freeze (data->inbox);
gd = (GnomeDialog *)gnome_dialog_new(_("Send & Receive mail"), GNOME_STOCK_BUTTON_OK, GNOME_STOCK_BUTTON_CANCEL, NULL);
gnome_dialog_set_sensitive(gd, 0, FALSE);
@@ -454,6 +458,7 @@ receive_get_folder(CamelFilterDriver *d, const char *uri, void *data, CamelExcep
camel_object_unref((CamelObject *)oldinfo->folder);
oldinfo->folder = folder;
} else {
+ camel_folder_freeze (folder);
oldinfo = g_malloc0(sizeof(*oldinfo));
oldinfo->folder = folder;
oldinfo->uri = g_strdup(uri);