Index: Source/core/html/shadow/SpinButtonElement.cpp |
diff --git a/Source/core/html/shadow/SpinButtonElement.cpp b/Source/core/html/shadow/SpinButtonElement.cpp |
index e0e30ae17a3cb02deea90ef60495bdf139a18277..9b4fb2612f195b5150224e8a25f29f676bb76a52 100644 |
--- a/Source/core/html/shadow/SpinButtonElement.cpp |
+++ b/Source/core/html/shadow/SpinButtonElement.cpp |
@@ -31,6 +31,7 @@ |
#include "core/events/MouseEvent.h" |
#include "core/events/ThreadLocalEventNames.h" |
#include "core/events/WheelEvent.h" |
+#include "core/html/HTMLInputElement.h" |
#include "core/html/shadow/ShadowElementNames.h" |
#include "core/page/Chrome.h" |
#include "core/page/EventHandler.h" |
@@ -69,6 +70,11 @@ void SpinButtonElement::detach(const AttachContext& context) |
void SpinButtonElement::defaultEventHandler(Event* event) |
{ |
+ if (event->isKeyboardEvent()) { |
+ HTMLInputElement* input = toHTMLInputElement(shadowHost()); |
+ input->dispatchFormControlChangeEvent(); |
+ } |
+ |
if (!event->isMouseEvent()) { |
if (!event->defaultHandled()) |
HTMLDivElement::defaultEventHandler(event); |
@@ -111,9 +117,11 @@ void SpinButtonElement::defaultEventHandler(Event* event) |
} |
event->setDefaultHandled(); |
} |
- } else if (mouseEvent->type() == EventTypeNames::mouseup && mouseEvent->button() == LeftButton) |
+ } else if (mouseEvent->type() == EventTypeNames::mouseup && mouseEvent->button() == LeftButton) { |
stopRepeatingTimer(); |
- else if (event->type() == EventTypeNames::mousemove) { |
+ HTMLInputElement* input = toHTMLInputElement(shadowHost()); |
+ input->dispatchFormControlChangeEvent(); |
+ } else if (event->type() == EventTypeNames::mousemove) { |
if (box->pixelSnappedBorderBoxRect().contains(local)) { |
if (!m_capturing) { |
if (Frame* frame = document().frame()) { |