mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-13 05:15:45 +00:00
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:
parent
63ed119bc3
commit
c975068538
@ -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;
|
||||
}
|
||||
|
@ -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
|
||||
//
|
||||
|
Loading…
Reference in New Issue
Block a user