diff options
-rw-r--r-- | mailnews/base/content/newmailalert.js | 20 | ||||
-rw-r--r-- | mailnews/base/src/nsMessengerUnixIntegration.cpp | 12 |
2 files changed, 22 insertions, 10 deletions
diff --git a/mailnews/base/content/newmailalert.js b/mailnews/base/content/newmailalert.js index 243934092..f54d165b1 100644 --- a/mailnews/base/content/newmailalert.js +++ b/mailnews/base/content/newmailalert.js @@ -57,12 +57,20 @@ function prefillAlertInfo() folderSummaryInfoEl.mMaxMsgHdrsInPopup = gNumNewMsgsToShowInAlert; for (let folder in fixIterator(allFolders, Components.interfaces.nsIMsgFolder)) { - if (folder.hasNewMessages && !folder.getFlag(Ci.nsMsgFolderFlags.Virtual)) - { - var asyncFetch = {}; - folderSummaryInfoEl.parseFolder(folder, new urlListener(folder), asyncFetch); - if (asyncFetch.value) - gPendingPreviewFetchRequests++; + if (folder.hasNewMessages) { + let notify = + // Any folder which is an inbox or ... + folder.getFlag(Ci.nsMsgFolderFlags.Inbox) || + // any non-special or non-virtual folder. In other words, we don't + // notify for Drafts|Trash|SentMail|Templates|Junk|Archive|Queue or virtual. + !(folder.flags & (Ci.nsMsgFolderFlags.SpecialUse | Ci.nsMsgFolderFlags.Virtual)); + + if (notify) { + var asyncFetch = {}; + folderSummaryInfoEl.parseFolder(folder, new urlListener(folder), asyncFetch); + if (asyncFetch.value) + gPendingPreviewFetchRequests++; + } } } } diff --git a/mailnews/base/src/nsMessengerUnixIntegration.cpp b/mailnews/base/src/nsMessengerUnixIntegration.cpp index 0e4dd1405..cb76a5fba 100644 --- a/mailnews/base/src/nsMessengerUnixIntegration.cpp +++ b/mailnews/base/src/nsMessengerUnixIntegration.cpp @@ -609,10 +609,14 @@ nsresult nsMessengerUnixIntegration::GetFirstFolderWithNewMail(nsACString& aFold if (NS_FAILED(rv)) continue; - // Unless we're dealing with an Inbox, we don't care - // about Drafts, Queue, SentMail, Template, or Junk folders - if (!(flags & nsMsgFolderFlags::Inbox) && - (flags & (nsMsgFolderFlags::SpecialUse & ~nsMsgFolderFlags::Inbox))) + bool notify = + // Any folder which is an inbox or ... + flags & nsMsgFolderFlags::Inbox || + // any non-special or non-virtual folder. In other words, we don't + // notify for Drafts|Trash|SentMail|Templates|Junk|Archive|Queue or virtual. + !(flags & (nsMsgFolderFlags::SpecialUse | nsMsgFolderFlags::Virtual)); + + if (!notify) continue; nsCString folderURI; |