mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 19:35:51 +00:00
Fix for bug #32214.
This commit is contained in:
parent
5ba3a9bed3
commit
75662ac1f7
@ -178,12 +178,25 @@ nsXULMenuListElement::GetSelectedItem(nsIDOMElement** aResult)
|
||||
if (child) {
|
||||
PRInt32 count;
|
||||
child->ChildCount(count);
|
||||
if (count > 0) {
|
||||
PRInt32 i;
|
||||
for (i = 0; i < count; i++) {
|
||||
nsCOMPtr<nsIContent> item;
|
||||
child->ChildAt(i, *getter_AddRefs(item));
|
||||
nsCOMPtr<nsIDOMElement> selectedElement(do_QueryInterface(item));
|
||||
|
||||
nsAutoString isSelected;
|
||||
selectedElement->GetAttribute(nsAutoString("selected"), isSelected);
|
||||
if (isSelected == "true") {
|
||||
SetSelectedItem(selectedElement);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (i == count && count > 0) {
|
||||
nsCOMPtr<nsIContent> item;
|
||||
child->ChildAt(0, *getter_AddRefs(item));
|
||||
nsCOMPtr<nsIDOMElement> selectedElement(do_QueryInterface(item));
|
||||
if (selectedElement)
|
||||
SetSelectedItem(selectedElement);
|
||||
SetSelectedItem(selectedElement);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -198,7 +211,20 @@ nsXULMenuListElement::GetSelectedItem(nsIDOMElement** aResult)
|
||||
NS_IMETHODIMP
|
||||
nsXULMenuListElement::SetSelectedItem(nsIDOMElement* aElement)
|
||||
{
|
||||
if (mSelectedItem.get() == aElement)
|
||||
return NS_OK;
|
||||
|
||||
if (mSelectedItem) {
|
||||
mSelectedItem->RemoveAttribute(nsAutoString("selected"));
|
||||
}
|
||||
|
||||
mSelectedItem = aElement;
|
||||
|
||||
if (!mSelectedItem)
|
||||
return NS_OK;
|
||||
|
||||
mSelectedItem->SetAttribute(nsAutoString("selected"), nsAutoString("true"));
|
||||
|
||||
nsAutoString value, src, data;
|
||||
aElement->GetAttribute(nsAutoString("value"), value);
|
||||
aElement->GetAttribute(nsAutoString("src"), src);
|
||||
|
Loading…
Reference in New Issue
Block a user