Revision: 7273
http://svn.sourceforge.net/mahogany/?rev=7273&view=rev
Author: vadz
Date: 2007-05-18 05:21:51 -0700 (Fri, 18 May 2007)
Log Message:
-----------
fix bug with status of the folder getting out of sync when a new message was
received while a previous new message was still being processed by delaying
status invalidation as we already do for new mail processing
Modified Paths:
--------------
trunk/M/src/mail/MailFolderCC.cpp
Modified: trunk/M/src/mail/MailFolderCC.cpp
===================================================================
--- trunk/M/src/mail/MailFolderCC.cpp 2007-05-18 12:21:41 UTC (rev 7272)
+++ trunk/M/src/mail/MailFolderCC.cpp 2007-05-18 12:21:51 UTC (rev 7273)
@@ -4591,23 +4591,6 @@
// because we're inside c-client now and it is not reentrant, so we
// send an event to ourselves to do it slightly later
MEventManager::Send(new MEventFolderOnNewMailData(this));
-
- // the number of unread/marked/... messages may have changed (there
- // could be some more of them among the new ones), so forget the
- // old values
- //
- // NB: we can't assume that the status hasn't changed just because
- // all new mail was filtered away because we might have some
- // non new messages as well and the flags of the existing ones
- // could have been changed from the outside
- //
- // NB2: don't do it for the temp (nameless) folders as we don't
- // cache their status anyhow
- const String name = GetName();
- if ( !name.empty() )
- {
- MfStatusCache::Get()->InvalidateStatus(name);
- }
}
else // empty folder
{
@@ -4724,6 +4707,22 @@
wxLogTrace(TRACE_MF_EVENTS, _T("Got new mail notification for '%s'"),
GetName().c_str());
+ // the number of unread/marked/... messages may have changed (there
+ // could be some more of them among the new ones), so forget the
+ // old values
+ //
+ // NB: we can't assume that all new messages are new (i.e. unread) and
+ // update the status directly here, this would be wrong when old
+ // messages are moved to the mailbox
+ //
+ // NB2: don't do it for the temp (nameless) folders as we don't
+ // cache their status anyhow
+ const String name = GetName();
+ if ( !name.empty() )
+ {
+ MfStatusCache::Get()->InvalidateStatus(name);
+ }
+
// should we notify the GUI about the new mail in the folder?
//
// normally it should always be done so that the list of messages could be
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Mahogany-cvsupdates mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mahogany-cvsupdates