diff options
author | Dan Winship <danw@src.gnome.org> | 2001-05-27 01:17:10 +0800 |
---|---|---|
committer | Dan Winship <danw@src.gnome.org> | 2001-05-27 01:17:10 +0800 |
commit | 364cdf26e787ac19200de24beb147c9ac229c16b (patch) | |
tree | e58a9cee226f32246f43d246c80a731c4bda5d80 /camel/providers/imap/camel-imap-store.c | |
parent | 1f50ab36a1e3835e5b701c3eb0d0867a15386067 (diff) | |
download | gsoc2013-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.c | 1 |
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); } |