diff options
Diffstat (limited to 'Source/WebCore/html/HTMLSelectElement.cpp')
-rw-r--r-- | Source/WebCore/html/HTMLSelectElement.cpp | 5 |
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) |