summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/html/HTMLSelectElement.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/html/HTMLSelectElement.cpp')
-rw-r--r--Source/WebCore/html/HTMLSelectElement.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/Source/WebCore/html/HTMLSelectElement.cpp b/Source/WebCore/html/HTMLSelectElement.cpp
index d23e56a..69d3ffe 100644
--- a/Source/WebCore/html/HTMLSelectElement.cpp
+++ b/Source/WebCore/html/HTMLSelectElement.cpp
@@ -434,7 +434,12 @@ void HTMLSelectElement::accessKeySetSelectedIndex(int index)
void HTMLSelectElement::setMultiple(bool multiple)
{
+ int oldSelectedIndex = selectedIndex();
setAttribute(multipleAttr, multiple ? "" : 0);
+
+ // Restore selectedIndex after changing the multiple flag to preserve
+ // selection as single-line and multi-line has different defaults.
+ setSelectedIndex(oldSelectedIndex);
}
void HTMLSelectElement::setSize(int size)