From deceab6fc0e43ebfcaeff66fe2ea8fe4fd5e09dd Mon Sep 17 00:00:00 2001 From: "bienvenu%netscape.com" Date: Wed, 7 Mar 2001 02:30:57 +0000 Subject: [PATCH] fix selection of next msg after multiple delete git-svn-id: svn://10.0.0.236/branches/MailNews_Performance_20010208_BRANCH@88761 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/mailnews/base/public/nsIMsgDBView.idl | 1 + .../resources/content/msgMail3PaneWindow.js | 6 ++---- mozilla/mailnews/base/src/nsMsgDBView.cpp | 21 +++++++++++++++++++ 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/mozilla/mailnews/base/public/nsIMsgDBView.idl b/mozilla/mailnews/base/public/nsIMsgDBView.idl index 402599e10af..6b871bd73b9 100644 --- a/mozilla/mailnews/base/public/nsIMsgDBView.idl +++ b/mozilla/mailnews/base/public/nsIMsgDBView.idl @@ -255,6 +255,7 @@ interface nsIMsgDBView : nsISupports void loadMessageByMsgKey (in nsMsgKey aMsgKey); readonly attribute unsigned long numSelected; + readonly attribute nsMsgViewIndex firstSelected; // the lowest view index selected. // we'll suppress displaying messages if the message pane is collapsed attribute boolean supressMsgDisplay; diff --git a/mozilla/mailnews/base/resources/content/msgMail3PaneWindow.js b/mozilla/mailnews/base/resources/content/msgMail3PaneWindow.js index 4bca24ee779..752f4cc68cb 100644 --- a/mozilla/mailnews/base/resources/content/msgMail3PaneWindow.js +++ b/mozilla/mailnews/base/resources/content/msgMail3PaneWindow.js @@ -908,10 +908,8 @@ function GetCompositeDataSource(command) function SetNextMessageAfterDelete() { - var outlinerView = gDBView.QueryInterface(Components.interfaces.nsIOutlinerView); - var selection = outlinerView.selection; - dump("setting next msg view index after delete to " + selection.currentIndex + "\n"); - gNextMessageViewIndexAfterDelete = selection.currentIndex; + dump("setting next msg view index after delete to " + gDBView.firstSelected + "\n"); + gNextMessageViewIndexAfterDelete = gDBView.firstSelected; } function SelectFolder(folderUri) diff --git a/mozilla/mailnews/base/src/nsMsgDBView.cpp b/mozilla/mailnews/base/src/nsMsgDBView.cpp index 2dece28c7f5..0172f21d42b 100644 --- a/mozilla/mailnews/base/src/nsMsgDBView.cpp +++ b/mozilla/mailnews/base/src/nsMsgDBView.cpp @@ -3774,6 +3774,27 @@ nsMsgDBView::GetNumSelected(PRUint32 *numSelected) return NS_OK; } +NS_IMETHODIMP +nsMsgDBView::GetFirstSelected(nsMsgViewIndex *firstSelected) +{ + NS_ENSURE_ARG_POINTER(firstSelected); + *firstSelected = nsMsgViewIndex_None; + if (!mOutlinerSelection) { + return NS_OK; + } + + PRInt32 selectionCount; + nsresult rv = mOutlinerSelection->GetRangeCount(&selectionCount); + for (PRInt32 i = 0; i < selectionCount; i++) + { + PRInt32 startRange; + PRInt32 endRange; + rv = mOutlinerSelection->GetRangeAt(i, &startRange, &endRange); + *firstSelected = PR_MIN(*firstSelected, startRange); + } + return NS_OK; +} + // if nothing selected, return an NS_ERROR NS_IMETHODIMP nsMsgDBView::GetHdrForFirstSelectedMessage(nsIMsgDBHdr **hdr)