From 92eff010bed837864d1ba051cac83a070179b73c Mon Sep 17 00:00:00 2001 From: Trevor Saunders Date: Mon, 17 Jan 2011 16:46:42 +0800 Subject: [PATCH] Bug 624977 - improve nsXulTreeAccessible selectedItems(), r=surkov, a2.0=davidb --- accessible/src/xul/nsXULTreeAccessible.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/accessible/src/xul/nsXULTreeAccessible.cpp b/accessible/src/xul/nsXULTreeAccessible.cpp index 081c4761295..240a0d1ab75 100644 --- a/accessible/src/xul/nsXULTreeAccessible.cpp +++ b/accessible/src/xul/nsXULTreeAccessible.cpp @@ -295,13 +295,13 @@ nsXULTreeAccessible::SelectedItems() if (!selectedItems) return nsnull; - PRInt32 rowIndex, rowCount; - PRBool isSelected; - mTreeView->GetRowCount(&rowCount); - for (rowIndex = 0; rowIndex < rowCount; rowIndex++) { - selection->IsSelected(rowIndex, &isSelected); - if (isSelected) { - nsIAccessible* item = GetTreeItemAccessible(rowIndex); + PRInt32 rangeCount = 0; + selection->GetRangeCount(&rangeCount); + for (PRInt32 rangeIdx = 0; rangeIdx < rangeCount; rangeIdx++) { + PRInt32 firstIdx = 0, lastIdx = -1; + selection->GetRangeAt(rangeIdx, &firstIdx, &lastIdx); + for (PRInt32 rowIdx = firstIdx; rowIdx <= lastIdx; rowIdx++) { + nsIAccessible* item = GetTreeItemAccessible(rowIdx); if (item) selectedItems->AppendElement(item, PR_FALSE); }