aboutsummaryrefslogtreecommitdiffstats
path: root/camel/providers
diff options
context:
space:
mode:
authorDan Winship <danw@src.gnome.org>2001-08-07 05:19:13 +0800
committerDan Winship <danw@src.gnome.org>2001-08-07 05:19:13 +0800
commit4cbbf6af0bf74b0c850ce9ff6c2e5888eda42483 (patch)
treeff2445ece666c49071133f7724ed374303a06c13 /camel/providers
parent0b71da2cf3db0f299599f1dd8e5609574e498985 (diff)
downloadgsoc2013-evolution-4cbbf6af0bf74b0c850ce9ff6c2e5888eda42483.tar.gz
gsoc2013-evolution-4cbbf6af0bf74b0c850ce9ff6c2e5888eda42483.tar.zst
gsoc2013-evolution-4cbbf6af0bf74b0c850ce9ff6c2e5888eda42483.zip
Do a refresh_info on the selected folder before looking at its unread
* providers/imap/camel-imap-store.c (get_folder_info_online): Do a refresh_info on the selected folder before looking at its unread count. Should fix bug #4944. svn path=/trunk/; revision=11710
Diffstat (limited to 'camel/providers')
-rw-r--r--camel/providers/imap/camel-imap-store.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/camel/providers/imap/camel-imap-store.c b/camel/providers/imap/camel-imap-store.c
index 4f8571bfae..62df070f2a 100644
--- a/camel/providers/imap/camel-imap-store.c
+++ b/camel/providers/imap/camel-imap-store.c
@@ -1293,17 +1293,16 @@ get_folder_info_online (CamelStore *store, const char *top,
&& (g_strcasecmp (fi->name, "INBOX") != 0))
continue;
- /* UW will give cached data for the currently selected
- * folder. Grr. Well, I guess this also potentially
- * saves us one IMAP command.
+ /* For the current folder, poke it to check for new
+ * messages and then report that number, rather than
+ * doing a STATUS command.
*/
if (imap_store->current_folder &&
!strcmp (imap_store->current_folder->full_name, fi->full_name)) {
+ camel_folder_refresh_info (imap_store->current_folder, NULL);
fi->unread_message_count = camel_folder_get_unread_message_count (imap_store->current_folder);
- continue;
- }
-
- fi->unread_message_count = get_folder_status (imap_store, fi->full_name, "UNSEEN");
+ } else
+ fi->unread_message_count = get_folder_status (imap_store, fi->full_name, "UNSEEN");
}
g_ptr_array_free (folders, TRUE);