aboutsummaryrefslogtreecommitdiffstats
path: root/camel/providers/imap/camel-imap-store.c
diff options
context:
space:
mode:
authorDan Winship <danw@src.gnome.org>2001-05-27 01:17:10 +0800
committerDan Winship <danw@src.gnome.org>2001-05-27 01:17:10 +0800
commit364cdf26e787ac19200de24beb147c9ac229c16b (patch)
treee58a9cee226f32246f43d246c80a731c4bda5d80 /camel/providers/imap/camel-imap-store.c
parent1f50ab36a1e3835e5b701c3eb0d0867a15386067 (diff)
downloadgsoc2013-evolution-364cdf26e787ac19200de24beb147c9ac229c16b.tar
gsoc2013-evolution-364cdf26e787ac19200de24beb147c9ac229c16b.tar.gz
gsoc2013-evolution-364cdf26e787ac19200de24beb147c9ac229c16b.tar.bz2
gsoc2013-evolution-364cdf26e787ac19200de24beb147c9ac229c16b.tar.lz
gsoc2013-evolution-364cdf26e787ac19200de24beb147c9ac229c16b.tar.xz
gsoc2013-evolution-364cdf26e787ac19200de24beb147c9ac229c16b.tar.zst
gsoc2013-evolution-364cdf26e787ac19200de24beb147c9ac229c16b.zip
Add a "need_rescan" flag saying if we want to rescan the entire folder for
* providers/imap/camel-imap-folder.c: Add a "need_rescan" flag saying if we want to rescan the entire folder for flag changes next time it's selected. (camel_imap_folder_init): Set need_rescan TRUE. (camel_imap_folder_selected): If need_rescan is TRUE, call imap_rescan. (imap_refresh_info): Only do a full rescan if need_rescan is TRUE. Otherwise just do a NOOP, making this a MUCH more lightweight operation. Also, don't call imap_rescan directly if the folder isn't selected, since that could end up causing the folder to be scanned *twice* (imap_rescan -> camel_imap_command -> camel_imap_folder_selected -> imap_rescan). (imap_rescan): Set need_rescan FALSE. (imap_sync_online): Don't NOOP if no changes were pushed: the caller will call refresh_info if it wants to poll for changes. Fixes evolution-mail doing lots of unnecessary extra work at quit time. svn path=/trunk/; revision=10010
Diffstat (limited to 'camel/providers/imap/camel-imap-store.c')
-rw-r--r--camel/providers/imap/camel-imap-store.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/camel/providers/imap/camel-imap-store.c b/camel/providers/imap/camel-imap-store.c
index 5138cda658..94d2436810 100644
--- a/camel/providers/imap/camel-imap-store.c
+++ b/camel/providers/imap/camel-imap-store.c
@@ -353,6 +353,7 @@ refresh_folder_info (gpointer key, gpointer value, gpointer data)
{
CamelFolder *folder = CAMEL_FOLDER (value);
+ CAMEL_IMAP_FOLDER (folder)->need_rescan = TRUE;
CAMEL_FOLDER_CLASS (CAMEL_OBJECT_GET_CLASS(folder))->refresh_info(folder, data);
}