diff --git a/content/xul/content/src/nsXULTreeElement.cpp b/content/xul/content/src/nsXULTreeElement.cpp index ddde41c02fc7..a8dc94d99f9a 100644 --- a/content/xul/content/src/nsXULTreeElement.cpp +++ b/content/xul/content/src/nsXULTreeElement.cpp @@ -450,10 +450,29 @@ nsXULTreeElement::GetRowIndexOf(nsIDOMXULElement *aElement, PRInt32 *aReturn) elementTag.get() == kTreeChildrenAtom || elementTag.get() == kTreeItemAtom) descendIntoRows = PR_FALSE; + + // now begin with the first child of this node + PRInt32 i; + PRInt32 treeChildCount; + nsCOMPtr treeChildren; + treeContent->ChildCount(treeChildCount); + for (i=0; iChildAt(i, *getter_AddRefs(treeChildren)); + + nsCOMPtr tag; + treeChildren->GetTag(*getter_AddRefs(tag)); + if (tag.get() == kTreeChildrenAtom) + break; + } + + if (treeChildren) + return IndexOfContent(treeChildren, elementContent, + descendIntoRows, PR_TRUE /* aParentIsOpen */, + aReturn); - return IndexOfContent(treeContent, elementContent, - descendIntoRows, PR_TRUE /* aParentIsOpen */, - aReturn); + NS_WARNING("EnsureContentVisible: tree has no "); + return NS_ERROR_FAILURE; } diff --git a/rdf/content/src/nsXULTreeElement.cpp b/rdf/content/src/nsXULTreeElement.cpp index ddde41c02fc7..a8dc94d99f9a 100644 --- a/rdf/content/src/nsXULTreeElement.cpp +++ b/rdf/content/src/nsXULTreeElement.cpp @@ -450,10 +450,29 @@ nsXULTreeElement::GetRowIndexOf(nsIDOMXULElement *aElement, PRInt32 *aReturn) elementTag.get() == kTreeChildrenAtom || elementTag.get() == kTreeItemAtom) descendIntoRows = PR_FALSE; + + // now begin with the first child of this node + PRInt32 i; + PRInt32 treeChildCount; + nsCOMPtr treeChildren; + treeContent->ChildCount(treeChildCount); + for (i=0; iChildAt(i, *getter_AddRefs(treeChildren)); + + nsCOMPtr tag; + treeChildren->GetTag(*getter_AddRefs(tag)); + if (tag.get() == kTreeChildrenAtom) + break; + } + + if (treeChildren) + return IndexOfContent(treeChildren, elementContent, + descendIntoRows, PR_TRUE /* aParentIsOpen */, + aReturn); - return IndexOfContent(treeContent, elementContent, - descendIntoRows, PR_TRUE /* aParentIsOpen */, - aReturn); + NS_WARNING("EnsureContentVisible: tree has no "); + return NS_ERROR_FAILURE; }