Chromium Code Reviews| Index: Source/core/html/HTMLSelectElement.cpp |
| diff --git a/Source/core/html/HTMLSelectElement.cpp b/Source/core/html/HTMLSelectElement.cpp |
| old mode 100644 |
| new mode 100755 |
| index 2d581071d37568b86dd674a14514976a284ad179..05c87eac811ee69e761559771f64b80df9567b6d |
| --- a/Source/core/html/HTMLSelectElement.cpp |
| +++ b/Source/core/html/HTMLSelectElement.cpp |
| @@ -74,6 +74,7 @@ HTMLSelectElement::HTMLSelectElement(Document& document, HTMLFormElement* form, |
| , m_activeSelectionState(false) |
| , m_shouldRecalcListItems(false) |
| , m_isParsingInProgress(createdByParser) |
| + , m_onChangeFired(true) |
|
eseidel
2013/12/28 19:57:00
When the element is created the "on change" has al
gnana
2014/01/03 07:50:02
In my latest patch i dont use it any more so i rem
|
| { |
| ScriptWrappable::init(this); |
| } |
| @@ -1300,6 +1301,7 @@ void HTMLSelectElement::listBoxDefaultEventHandler(Event* event) |
| frame->eventHandler().setMouseDownMayStartAutoscroll(); |
| event->setDefaultHandled(); |
| + setOnChangeFired(false); |
| } |
| } else if (event->type() == EventTypeNames::mousemove && event->isMouseEvent() && !toRenderBox(renderer())->canBeScrolledAndHasScrollableArea()) { |
| MouseEvent* mouseEvent = toMouseEvent(event); |
| @@ -1323,7 +1325,7 @@ void HTMLSelectElement::listBoxDefaultEventHandler(Event* event) |
| updateListBoxSelection(true); |
| } |
| } |
| - event->setDefaultHandled(); |
| + // event->setDefaultHandled(); |
|
eseidel
2013/12/28 19:57:00
Please don't commit commented out code.
gnana
2014/01/03 07:50:02
Done.
|
| } |
| } else if (event->type() == EventTypeNames::mouseup && event->isMouseEvent() && toMouseEvent(event)->button() == LeftButton && renderer() && !toRenderBox(renderer())->autoscrollInProgress()) { |
| // We didn't start this click/drag on any options. |
| @@ -1332,7 +1334,10 @@ void HTMLSelectElement::listBoxDefaultEventHandler(Event* event) |
| // This makes sure we fire dispatchFormControlChangeEvent for a single |
| // click. For drag selection, onChange will fire when the autoscroll |
| // timer stops. |
| - listBoxOnChange(); |
| + if (!isOnChangeFired()) { |
| + setOnChangeFired(true); |
| + listBoxOnChange(); |
| + } |
| } else if (event->type() == EventTypeNames::keydown) { |
| if (!event->isKeyboardEvent()) |
| return; |