CVS: sylpheedclaws/sylpheed-claws/src action.c,1.12.2.39,1.12.2.40

[email protected]
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;
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.