| Index: third_party/WebKit/Source/core/input/PointerEventManager.cpp
|
| diff --git a/third_party/WebKit/Source/core/input/PointerEventManager.cpp b/third_party/WebKit/Source/core/input/PointerEventManager.cpp
|
| index dea2939a4284ce09dd0d891e7a869f0eb3164f1a..035250a9e5d78a35231a4e32679a4c9dae1eb776 100644
|
| --- a/third_party/WebKit/Source/core/input/PointerEventManager.cpp
|
| +++ b/third_party/WebKit/Source/core/input/PointerEventManager.cpp
|
| @@ -528,10 +528,16 @@ WebInputEventResult PointerEventManager::sendMousePointerEvent(
|
|
|
| // This is for when the mouse is released outside of the page.
|
| if (pointerEvent->type() == EventTypeNames::pointermove
|
| - && !pointerEvent->buttons()
|
| - && pointerEvent->isPrimary()) {
|
| - m_preventMouseEventForPointerType[toPointerTypeIndex(
|
| - mouseEvent.pointerProperties().pointerType)] = false;
|
| + && !pointerEvent->buttons()) {
|
| +
|
| + releasePointerCapture(pointerEvent->pointerId());
|
| + // Send got/lostpointercapture rightaway if necessary.
|
| + processPendingPointerCapture(pointerEvent);
|
| +
|
| + if (pointerEvent->isPrimary()) {
|
| + m_preventMouseEventForPointerType[toPointerTypeIndex(
|
| + mouseEvent.pointerProperties().pointerType)] = false;
|
| + }
|
| }
|
|
|
| EventTarget* pointerEventTarget = processCaptureAndPositionOfPointerEvent(pointerEvent, target,
|
| @@ -575,9 +581,10 @@ WebInputEventResult PointerEventManager::sendMousePointerEvent(
|
| nullptr, clickCount));
|
| }
|
|
|
| - if (pointerEvent->buttons() == 0) {
|
| - releasePointerCapture(pointerEvent->pointerId());
|
| + if (pointerEvent->type() == EventTypeNames::pointerup
|
| + || pointerEvent->type() == EventTypeNames::pointercancel) {
|
|
|
| + releasePointerCapture(pointerEvent->pointerId());
|
| // Send got/lostpointercapture rightaway if necessary.
|
| processPendingPointerCapture(pointerEvent);
|
|
|
|
|