diff options
author | Steve Block <steveblock@google.com> | 2011-05-18 13:36:51 +0100 |
---|---|---|
committer | Steve Block <steveblock@google.com> | 2011-05-24 15:38:28 +0100 |
commit | 2fc2651226baac27029e38c9d6ef883fa32084db (patch) | |
tree | e396d4bf89dcce6ed02071be66212495b1df1dec /Source/WebCore/dom/SelectElement.cpp | |
parent | b3725cedeb43722b3b175aaeff70552e562d2c94 (diff) | |
download | external_webkit-2fc2651226baac27029e38c9d6ef883fa32084db.zip external_webkit-2fc2651226baac27029e38c9d6ef883fa32084db.tar.gz external_webkit-2fc2651226baac27029e38c9d6ef883fa32084db.tar.bz2 |
Merge WebKit at r78450: Initial merge by git.
Change-Id: I6d3e5f1f868ec266a0aafdef66182ddc3f265dc1
Diffstat (limited to 'Source/WebCore/dom/SelectElement.cpp')
-rw-r--r-- | Source/WebCore/dom/SelectElement.cpp | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/Source/WebCore/dom/SelectElement.cpp b/Source/WebCore/dom/SelectElement.cpp index 661ba88..a4da0ae 100644 --- a/Source/WebCore/dom/SelectElement.cpp +++ b/Source/WebCore/dom/SelectElement.cpp @@ -22,7 +22,6 @@ #include "SelectElement.h" #include "Attribute.h" -#include "CharacterNames.h" #include "Chrome.h" #include "ChromeClient.h" #include "Element.h" @@ -31,7 +30,6 @@ #include "FormDataList.h" #include "Frame.h" #include "HTMLFormElement.h" -#include "HTMLKeygenElement.h" #include "HTMLNames.h" #include "HTMLSelectElement.h" #include "KeyboardEvent.h" @@ -43,6 +41,7 @@ #include "RenderMenuList.h" #include "SpatialNavigation.h" #include <wtf/Assertions.h> +#include <wtf/unicode/CharacterNames.h> #if ENABLE(WML) #include "WMLNames.h" @@ -315,11 +314,14 @@ int SelectElement::selectedIndex(const SelectElementData& data, const Element* e void SelectElement::setSelectedIndex(SelectElementData& data, Element* element, int optionIndex, bool deselect, bool fireOnChangeNow, bool userDrivenChange) { - const Vector<Element*>& items = data.listItems(element); - int listIndex = optionToListIndex(data, element, optionIndex); + if (optionIndex == -1 && !deselect && !data.multiple()) + optionIndex = nextSelectableListIndex(data, element, -1); if (!data.multiple()) deselect = true; + const Vector<Element*>& items = data.listItems(element); + int listIndex = optionToListIndex(data, element, optionIndex); + Element* excludeElement = 0; if (OptionElement* optionElement = (listIndex >= 0 ? toOptionElement(items[listIndex]) : 0)) { excludeElement = items[listIndex]; @@ -1024,12 +1026,8 @@ const Vector<Element*>& SelectElementData::listItems(const Element* element) con SelectElement* toSelectElement(Element* element) { - if (element->isHTMLElement()) { - if (element->hasTagName(HTMLNames::selectTag)) - return static_cast<HTMLSelectElement*>(element); - if (element->hasTagName(HTMLNames::keygenTag)) - return static_cast<HTMLKeygenElement*>(element); - } + if (element->isHTMLElement() && element->hasTagName(HTMLNames::selectTag)) + return static_cast<HTMLSelectElement*>(element); #if ENABLE(WML) if (element->isWMLElement() && element->hasTagName(WMLNames::selectTag)) |