diff options
author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-08-12 12:50:46 +0200 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-08-12 12:50:46 +0200 |
commit | 863125a71d38eb7490ce5a8fff9ca7bc4e9ce630 (patch) | |
tree | 35d253aca1abca4b1b90d5587748e469cf8244ce /Source/WebCore/html | |
parent | f0c216a887850d14e42116bcac55a9a7a87ae298 (diff) | |
parent | 9548b912de9e4c11c3326708537c81d1b6861bfb (diff) |
Merge remote-tracking branch 'origin/5.3' into 5.4
Change-Id: Ie925a50b94d06e7012a7458549aa2afe6f33a402
Diffstat (limited to 'Source/WebCore/html')
-rw-r--r-- | Source/WebCore/html/HTMLSelectElement.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/Source/WebCore/html/HTMLSelectElement.cpp b/Source/WebCore/html/HTMLSelectElement.cpp index a437b375b..31958c89a 100644 --- a/Source/WebCore/html/HTMLSelectElement.cpp +++ b/Source/WebCore/html/HTMLSelectElement.cpp @@ -182,6 +182,8 @@ void HTMLSelectElement::listBoxSelectItem(int listIndex, bool allowMultiplySelec if (fireOnChangeNow) listBoxOnChange(); } + if (usesMenuList() && renderer()) + toRenderMenuList(renderer())->setTextFromOption(selectedIndex()); } bool HTMLSelectElement::usesMenuList() const @@ -826,6 +828,8 @@ void HTMLSelectElement::optionSelectionStateChanged(HTMLOptionElement* option, b selectOption(option->index()); else if (!usesMenuList()) selectOption(-1); + else if (m_multiple) + selectOption(selectedIndex()); else selectOption(nextSelectableListIndex(-1)); } @@ -862,12 +866,12 @@ void HTMLSelectElement::selectOption(int optionIndex, SelectOptionFlags flags) m_isProcessingUserDrivenChange = flags & UserDriven; if (flags & DispatchChangeEvent) dispatchChangeEventForMenuList(); - if (RenderObject* renderer = this->renderer()) { - if (usesMenuList()) - toRenderMenuList(renderer)->didSetSelectedIndex(listIndex); - else if (renderer->isListBox()) - toRenderListBox(renderer)->selectionChanged(); - } + } + if (RenderObject* renderer = this->renderer()) { + if (usesMenuList()) + toRenderMenuList(renderer)->didSetSelectedIndex(listIndex); + else if (renderer->isListBox()) + toRenderListBox(renderer)->selectionChanged(); } setNeedsValidityCheck(); |