Bug 624977 - improve nsXulTreeAccessible selectedItems(), r=surkov, a2.0=davidb

This commit is contained in:
Trevor Saunders 2011-01-17 16:46:42 +08:00
parent 5a989b46eb
commit 92eff010be

View File

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