Bug 809513 - Prevent unread Drafts from showing in new mail notification.

Change mainly affects Windows. However, Linux integration also changed so that it also allows new mail notification to occur for folder with SentMail flag.

Tag #1273
This commit is contained in:
Matt A. Tobin 2019-11-10 22:59:41 -05:00 committed by Roy Tam
commit a3ac164730
2 changed files with 22 additions and 10 deletions

View file

@ -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++;
}
}
}
}

View file

@ -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;