| Index: Source/core/html/shadow/SpinButtonElement.cpp
|
| diff --git a/Source/core/html/shadow/SpinButtonElement.cpp b/Source/core/html/shadow/SpinButtonElement.cpp
|
| index 04e21b86af6f1ea332e91be804b0b1b0519bbc43..199e8e1f05614bf8f83ca720c74627c98568d14d 100644
|
| --- a/Source/core/html/shadow/SpinButtonElement.cpp
|
| +++ b/Source/core/html/shadow/SpinButtonElement.cpp
|
| @@ -47,6 +47,7 @@ inline SpinButtonElement::SpinButtonElement(Document& document, SpinButtonOwner&
|
| : HTMLDivElement(document)
|
| , m_spinButtonOwner(&spinButtonOwner)
|
| , m_capturing(false)
|
| + , m_isMouseEvent(false)
|
| , m_upDownState(Indeterminate)
|
| , m_pressStartingState(Indeterminate)
|
| , m_repeatingTimer(this, &SpinButtonElement::repeatingTimerFired)
|
| @@ -87,7 +88,7 @@ void SpinButtonElement::defaultEventHandler(Event* event)
|
| HTMLDivElement::defaultEventHandler(event);
|
| return;
|
| }
|
| -
|
| + m_isMouseEvent = true;
|
| MouseEvent* mouseEvent = toMouseEvent(event);
|
| IntPoint local = roundedIntPoint(box->absoluteToLocal(mouseEvent->absoluteLocation(), UseTransforms));
|
| if (mouseEvent->type() == EventTypeNames::mousedown && mouseEvent->button() == LeftButton) {
|
| @@ -198,8 +199,10 @@ void SpinButtonElement::releaseCapture()
|
| if (Page* page = document().page())
|
| page->chrome().unregisterPopupOpeningObserver(this);
|
| }
|
| - if (m_spinButtonOwner)
|
| - m_spinButtonOwner->spinButtonDidReleaseMouseCapture();
|
| + }
|
| + if (m_spinButtonOwner && m_isMouseEvent) {
|
| + m_spinButtonOwner->spinButtonDidReleaseMouseCapture();
|
| + m_isMouseEvent = false;
|
| }
|
| }
|
|
|
|
|