From c665bef5adf26524385d04f6304fbb71ccf6da01 Mon Sep 17 00:00:00 2001 From: "aaronleventhal%moonset.net" Date: Wed, 16 Jun 2004 13:09:10 +0000 Subject: [PATCH] Missing part of checkin to bug 245931. r=pkw, sr=bryner --- accessible/src/xul/nsXULTreeAccessible.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/accessible/src/xul/nsXULTreeAccessible.cpp b/accessible/src/xul/nsXULTreeAccessible.cpp index fe8cacb0f7c..84c51cf3030 100644 --- a/accessible/src/xul/nsXULTreeAccessible.cpp +++ b/accessible/src/xul/nsXULTreeAccessible.cpp @@ -38,6 +38,7 @@ #include "nsIBoxObject.h" #include "nsIDOMXULElement.h" +#include "nsIDOMXULMultSelectCntrlEl.h" #include "nsITreeSelection.h" #include "nsITreeColumns.h" #include "nsXULTreeAccessible.h" @@ -475,13 +476,20 @@ NS_IMETHODIMP nsXULTreeitemAccessible::GetState(PRUint32 *_retval) nsCOMPtr selection; mTreeView->GetSelection(getter_AddRefs(selection)); if (selection) { - PRBool isSelected, currentIndex; + PRBool isSelected; selection->IsSelected(mRow, &isSelected); if (isSelected) *_retval |= STATE_SELECTED; - selection->GetCurrentIndex(¤tIndex); - if (currentIndex == mRow) + } + + nsCOMPtr multiSelect = + do_QueryInterface(mDOMNode); + if (multiSelect) { + PRInt32 currentIndex; + multiSelect->GetCurrentIndex(¤tIndex); + if (currentIndex == mRow) { *_retval |= STATE_FOCUSED; + } } PRInt32 firstVisibleRow, lastVisibleRow;