summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/html
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2014-08-12 12:50:46 +0200
committerFrederik Gladhorn <frederik.gladhorn@digia.com>2014-08-12 12:50:46 +0200
commit863125a71d38eb7490ce5a8fff9ca7bc4e9ce630 (patch)
tree35d253aca1abca4b1b90d5587748e469cf8244ce /Source/WebCore/html
parentf0c216a887850d14e42116bcac55a9a7a87ae298 (diff)
parent9548b912de9e4c11c3326708537c81d1b6861bfb (diff)
Merge remote-tracking branch 'origin/5.3' into 5.4
Diffstat (limited to 'Source/WebCore/html')
-rw-r--r--Source/WebCore/html/HTMLSelectElement.cpp16
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();