CVS: sylpheedclaws/sylpheed-claws/src action.c,1.12.2.39,1.12.2.40
[email protected] Sat, 09 Dec 2006 17:07:29 +0000
Newsgroups
gmane.mail.sylpheed.claws.cvs
Message-ID
<[email protected] >
Update of /pack/anoncvs/sylpheedclaws/sylpheed-claws/src
In directory sunsite.dk:/tmp/cvs-serv19018/src
Modified Files:
Tag: gtk2
action.c
Log Message:
2006-12-09 [colin] 2.6.1cvs12
* src/action.c
Fix cache updating after action
Index: action.c
===================================================================
RCS file: /pack/anoncvs/sylpheedclaws/sylpheed-claws/src/action.c,v
retrieving revision 1.12.2.39
retrieving revision 1.12.2.40
diff -u -d -r1.12.2.39 -r1.12.2.40
--- action.c 2006/11/07 10:38:31 1.12.2.39
+++ action.c 2006/12/09 17:07:20 1.12.2.40
@@ -1350,7 +1350,8 @@
GSList *cur;
MsgInfo *msginfo, *nmi; /* newmsginfo */
char *file;
-
+ gboolean modified_something = FALSE;
+ FolderItem *last_item = NULL;
if (mainwindow_get_mainwindow ())
summaryview = mainwindow_get_mainwindow ()->summaryview;
for (cur = child_info->msginfo_list; cur; cur = cur->next) {
@@ -1361,25 +1362,26 @@
file = procmsg_get_message_file_path (msginfo);
if (!file)
continue;
- nmi = procheader_parse_file (file, msginfo->flags, FALSE, FALSE);
+ nmi = procheader_parse_file (file, msginfo->flags, TRUE, FALSE);
if (!nmi)
continue; /* Deleted? */
if (msginfo->mtime != nmi->mtime || msginfo->size != nmi->size) {
- msginfo->mtime = nmi->mtime;
- msginfo->size = nmi->size;
- msgcache_update_msg (msginfo->folder->cache, msginfo);
+ nmi->folder = msginfo->folder;
+ nmi->msgnum = msginfo->msgnum;
+ msgcache_update_msg (msginfo->folder->cache, nmi);
+ modified_something = TRUE;
+ last_item = nmi->folder;
}
procmsg_msginfo_free (nmi);
-
- /* refresh the message display, but only if this message is still
- * in focus */
- if (summaryview
- && summaryview->displayed
- && summaryview->folder_item == msginfo->folder
- && summary_get_msgnum (summaryview, summaryview->displayed) == msginfo->msgnum) {
- summary_show (summaryview, summaryview->folder_item);
- summary_select_node (summaryview, summaryview->displayed, TRUE, TRUE);
- }
+ if (summaryview && summaryview->displayed &&
+ summaryview->folder_item == msginfo->folder &&
+ summary_get_msgnum(summaryview, summaryview->displayed) == msginfo->msgnum)
+ summary_redisplay_msg(summaryview);
+
+ }
+ if (modified_something && last_item &&
+ summaryview && summaryview->folder_item == last_item) {
+ summary_show (summaryview, summaryview->folder_item);
}
g_slist_free (child_info->msginfo_list);
child_info->msginfo_list = NULL;