From 172f70c6412b2af09ad400d3d4da39537866c466 Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Thu, 19 Oct 2000 20:32:54 +0000 Subject: For an imap store, just refresh the INBOX. * mail-ops.c: (do_fetch_mail): For an imap store, just refresh the INBOX. * folder-browser-factory.c (control_deactivate): Don't sync non-existent folders. * message-list.c (nuke_uids): Don't traverse non-existent trees. svn path=/trunk/; revision=6047 --- mail/ChangeLog | 9 +++++++++ mail/folder-browser-factory.c | 3 ++- mail/mail-ops.c | 11 +++++++++-- mail/message-list.c | 3 ++- 4 files changed, 22 insertions(+), 4 deletions(-) (limited to 'mail') diff --git a/mail/ChangeLog b/mail/ChangeLog index 2ec50d0680..a4d29f7011 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,12 @@ +2000-10-19 Dan Winship + + * mail-ops.c: (do_fetch_mail): For an imap store, just refresh the + INBOX. + + * folder-browser-factory.c (control_deactivate): Don't sync + non-existent folders. + * message-list.c (nuke_uids): Don't traverse non-existent trees. + 2000-10-19 Ettore Perazzoli * Makefile.am (glade_messages): New. diff --git a/mail/folder-browser-factory.c b/mail/folder-browser-factory.c index 4733b835cd..e7b93fabc4 100644 --- a/mail/folder-browser-factory.c +++ b/mail/folder-browser-factory.c @@ -165,7 +165,8 @@ control_deactivate (BonoboControl *control, bonobo_ui_component_rm (uic, "/", NULL); bonobo_ui_component_unset_container (uic); - mail_do_sync_folder (fb->folder); + if (fb->folder) + mail_do_sync_folder (fb->folder); } static void diff --git a/mail/mail-ops.c b/mail/mail-ops.c index 44660ce797..59a6e0cde3 100644 --- a/mail/mail-ops.c +++ b/mail/mail-ops.c @@ -129,9 +129,16 @@ do_fetch_mail (gpointer in_data, gpointer op_data, CamelException *ex) FilterContext *fc; FilterDriver *filter; FILE *logfile = NULL; + CamelFolder *folder; - /* If using IMAP, don't do anything... */ + /* FIXME: This shouldn't be checking for "imap" specifically. */ if (!strncmp (input->source_url, "imap:", 5)) { + folder = mail_tool_get_inbox (input->source_url, ex); + if (folder) { + camel_folder_refresh_info (folder, ex); + camel_object_unref (CAMEL_OBJECT (folder)); + } + data->empty = FALSE; return; } @@ -173,7 +180,7 @@ do_fetch_mail (gpointer in_data, gpointer op_data, CamelException *ex) } g_free (path); } else { - CamelFolder *folder = mail_tool_get_inbox (input->source_url, ex); + folder = mail_tool_get_inbox (input->source_url, ex); if (folder) { if (camel_folder_get_message_count (folder) > 0) { diff --git a/mail/message-list.c b/mail/message-list.c index b340efdb41..5dc2a5fde2 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -1343,7 +1343,8 @@ nuke_uids (GtkObject *o) { ETreeModel *etm = E_TREE_MODEL (o); - e_tree_model_node_traverse (etm, etm->root, nuke_uids_cb, NULL); + if (etm->root) + e_tree_model_node_traverse (etm, etm->root, nuke_uids_cb, NULL); } static void -- cgit v1.2.3