fix 259603 new messages aren't analyzed for junk status if the user clicks away from the inbox before we've finished retrieving messages, sr=msctt

This commit is contained in:
bienvenu%nventure.com 2004-10-18 14:51:29 +00:00
parent 63ed119bc3
commit c975068538
2 changed files with 15 additions and 0 deletions

View File

@ -442,6 +442,11 @@ NS_IMETHODIMP nsMsgDBFolder::ClearNewMessages()
//If there's no db then there's nothing to clear.
if(mDatabase)
{
nsMsgKeyArray *newMessageKeys = nsnull;
rv = mDatabase->GetNewList(&newMessageKeys);
if (NS_SUCCEEDED(rv))
m_saveNewMsgs.CopyArray(newMessageKeys);
NS_DELETEXPCOM (newMessageKeys);
rv = mDatabase->ClearNewList(PR_TRUE);
}
return rv;
@ -1853,7 +1858,10 @@ nsMsgDBFolder::CallFilterPlugins(nsIMsgWindow *aMsgWindow, PRBool *aFiltersRun)
nsMsgKeyArray *newMessageKeys;
rv = mDatabase->GetNewList(&newMessageKeys);
NS_ENSURE_SUCCESS(rv, rv);
if (!newMessageKeys && m_saveNewMsgs.GetSize() > 0)
newMessageKeys = new nsMsgKeyArray;
newMessageKeys->InsertAt(0, &m_saveNewMsgs);
// if there weren't any, just return
//
if (!newMessageKeys || !newMessageKeys->GetSize())
@ -1952,6 +1960,7 @@ nsMsgDBFolder::CallFilterPlugins(nsIMsgWindow *aMsgWindow, PRBool *aFiltersRun)
PR_Free(messageURIs);
}
m_saveNewMsgs.RemoveAll();
NS_DELETEXPCOM(newMessageKeys);
return rv;
}

View File

@ -205,6 +205,12 @@ protected:
PRInt32 mNumNewBiffMessages;
PRBool mIsCachable;
// these are previous set of new msgs, which we might
// want to run junk controls on. This is in addition to "new" hdrs
// in the db, which might get cleared because the user clicked away
// from the folder.
nsMsgKeyArray m_saveNewMsgs;
//
// stuff from the uri
//