mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-17 15:25:52 +00:00
Bug 360792: mail.delete_matches_sort_order does not work when using imap mark as deleted model, patch by Magnus Melin <mkmelin+mozilla@iki.fi>, r=bienvenu
This commit is contained in:
parent
0bbd020955
commit
4adb82e6aa
@ -5633,27 +5633,30 @@ nsMsgDBView::GetMsgToSelectAfterDelete(nsMsgViewIndex *msgToSelectAfterDelete)
|
|||||||
PRBool thisIsImapFolder = (imapFolder != nsnull);
|
PRBool thisIsImapFolder = (imapFolder != nsnull);
|
||||||
if (thisIsImapFolder) //need to update the imap-delete model, can change more than once in a session.
|
if (thisIsImapFolder) //need to update the imap-delete model, can change more than once in a session.
|
||||||
GetImapDeleteModel(nsnull);
|
GetImapDeleteModel(nsnull);
|
||||||
|
|
||||||
|
// If mail.delete_matches_sort_order is true,
|
||||||
|
// for views sorted in descending order (newest at the top), make msgToSelectAfterDelete
|
||||||
|
// advance in the same direction as the sort order.
|
||||||
|
PRBool deleteMatchesSort = PR_FALSE;
|
||||||
|
if (m_sortOrder == nsMsgViewSortOrder::descending && *msgToSelectAfterDelete)
|
||||||
|
{
|
||||||
|
nsCOMPtr<nsIPrefBranch> prefBranch (do_GetService(NS_PREFSERVICE_CONTRACTID, &rv));
|
||||||
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
prefBranch->GetBoolPref("mail.delete_matches_sort_order", &deleteMatchesSort);
|
||||||
|
}
|
||||||
|
|
||||||
if (mDeleteModel == nsMsgImapDeleteModels::IMAPDelete)
|
if (mDeleteModel == nsMsgImapDeleteModels::IMAPDelete)
|
||||||
{
|
{
|
||||||
if (selectionCount > 1 || (endRange-startRange) > 0) //multiple selection either using Ctrl or Shift keys
|
if (selectionCount > 1 || (endRange-startRange) > 0) //multiple selection either using Ctrl or Shift keys
|
||||||
*msgToSelectAfterDelete = nsMsgViewIndex_None;
|
*msgToSelectAfterDelete = nsMsgViewIndex_None;
|
||||||
|
else if(deleteMatchesSort)
|
||||||
|
*msgToSelectAfterDelete -= 1;
|
||||||
else
|
else
|
||||||
*msgToSelectAfterDelete += 1;
|
*msgToSelectAfterDelete += 1;
|
||||||
}
|
}
|
||||||
else
|
else if (deleteMatchesSort)
|
||||||
{
|
{
|
||||||
// If mail.delete_matches_sort_order is true,
|
*msgToSelectAfterDelete -= 1;
|
||||||
// for views sorted in descending order (newest at the top), make msgToSelectAfterDelete
|
|
||||||
// advance in the same direction as the sort order.
|
|
||||||
if (m_sortOrder == nsMsgViewSortOrder::descending && *msgToSelectAfterDelete)
|
|
||||||
{
|
|
||||||
nsCOMPtr<nsIPrefBranch> prefBranch (do_GetService(NS_PREFSERVICE_CONTRACTID, &rv));
|
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
|
||||||
PRBool deleteMatchesSort = PR_FALSE;
|
|
||||||
prefBranch->GetBoolPref("mail.delete_matches_sort_order", &deleteMatchesSort);
|
|
||||||
if (deleteMatchesSort)
|
|
||||||
*msgToSelectAfterDelete -= 1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
|
Loading…
Reference in New Issue
Block a user