aboutsummaryrefslogtreecommitdiff
path: root/libsylph/mh.c
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-12-07 10:17:56 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-12-07 10:17:56 +0000
commit168a914e917f0c6b336a1a0f2f3d08e35c001d31 (patch)
tree8637dd8814aab1f37b0adf853e7ebeaca494d110 /libsylph/mh.c
parent98bc6b1b9afbee2d32baf91c42906a739aba3f8d (diff)
update caches and flags when reading message list from a folder.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@806 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'libsylph/mh.c')
-rw-r--r--libsylph/mh.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/libsylph/mh.c b/libsylph/mh.c
index 8015d5ba..9cb12425 100644
--- a/libsylph/mh.c
+++ b/libsylph/mh.c
@@ -249,12 +249,13 @@ static GSList *mh_get_msg_list(Folder *folder, FolderItem *item,
item->cache_dirty = TRUE;
}
- item->mtime = cur_mtime;
-
procmsg_set_flags(mlist, item);
mlist = procmsg_sort_msg_list(mlist, item->sort_key, item->sort_type);
+ if (item->mark_queue)
+ item->mark_dirty = TRUE;
+
#ifdef MEASURE_TIME
g_timer_stop(timer);
g_print("%s: %s: elapsed time: %f sec\n",
@@ -264,6 +265,14 @@ static GSList *mh_get_msg_list(Folder *folder, FolderItem *item,
debug_print("cache_dirty: %d, mark_dirty: %d\n",
item->cache_dirty, item->mark_dirty);
+ if (!item->opened) {
+ item->mtime = cur_mtime;
+ if (item->cache_dirty)
+ procmsg_write_cache_list(item, mlist);
+ if (item->mark_dirty)
+ procmsg_write_flags_list(item, mlist);
+ }
+
return mlist;
}