diff options
Diffstat (limited to 'Source/WebCore/html/HTMLSelectElement.cpp')
-rw-r--r-- | Source/WebCore/html/HTMLSelectElement.cpp | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/Source/WebCore/html/HTMLSelectElement.cpp b/Source/WebCore/html/HTMLSelectElement.cpp index 83ccec5c3..98c99b830 100644 --- a/Source/WebCore/html/HTMLSelectElement.cpp +++ b/Source/WebCore/html/HTMLSelectElement.cpp @@ -1292,11 +1292,13 @@ void HTMLSelectElement::listBoxDefaultEventHandler(Event* event) IntPoint localOffset = roundedIntPoint(renderer()->absoluteToLocal(mouseEvent->absoluteLocation(), false, true)); int listIndex = toRenderListBox(renderer())->listIndexAtOffset(toSize(localOffset)); if (listIndex >= 0) { + if (!disabled()) { #if PLATFORM(MAC) || (PLATFORM(CHROMIUM) && OS(DARWIN)) - updateSelectedState(listIndex, mouseEvent->metaKey(), mouseEvent->shiftKey()); + updateSelectedState(listIndex, mouseEvent->metaKey(), mouseEvent->shiftKey()); #else - updateSelectedState(listIndex, mouseEvent->ctrlKey(), mouseEvent->shiftKey()); + updateSelectedState(listIndex, mouseEvent->ctrlKey(), mouseEvent->shiftKey()); #endif + } if (Frame* frame = document()->frame()) frame->eventHandler()->setMouseDownMayStartAutoscroll(); @@ -1310,13 +1312,15 @@ void HTMLSelectElement::listBoxDefaultEventHandler(Event* event) IntPoint localOffset = roundedIntPoint(renderer()->absoluteToLocal(mouseEvent->absoluteLocation(), false, true)); int listIndex = toRenderListBox(renderer())->listIndexAtOffset(toSize(localOffset)); if (listIndex >= 0) { - if (m_multiple) { - setActiveSelectionEndIndex(listIndex); - updateListBoxSelection(false); - } else { - setActiveSelectionAnchorIndex(listIndex); - setActiveSelectionEndIndex(listIndex); - updateListBoxSelection(true); + if (!disabled()) { + if (m_multiple) { + setActiveSelectionEndIndex(listIndex); + updateListBoxSelection(false); + } else { + setActiveSelectionAnchorIndex(listIndex); + setActiveSelectionEndIndex(listIndex); + updateListBoxSelection(true); + } } event->setDefaultHandled(); } |