| 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 3008398da7fec124070ee00ff75e309bcb4053fd..e9e0f4a3aeac9e8011e9dcb583f77e35e8dc49dc 100644
|
| --- a/third_party/WebKit/Source/core/input/PointerEventManager.cpp
|
| +++ b/third_party/WebKit/Source/core/input/PointerEventManager.cpp
|
| @@ -607,6 +607,25 @@ void PointerEventManager::ProcessPendingPointerCapture(
|
| }
|
| }
|
|
|
| +void PointerEventManager::DispatchLostPointerCaptureEvent(
|
| + const WebMouseEvent& mouse_event,
|
| + const Vector<WebMouseEvent>& coalesced_events) {
|
| + PointerEvent* pointer_event = pointer_event_factory_.Create(
|
| + EventTypeNames::mousemove, mouse_event, coalesced_events,
|
| + frame_->GetDocument()->domWindow());
|
| + if (EventTarget* capturing_target =
|
| + GetCapturingNode(pointer_event->pointerId())) {
|
| + if (capturing_target->ToNode() &&
|
| + !capturing_target->ToNode()->isConnected()) {
|
| + capturing_target = capturing_target->ToNode()->ownerDocument();
|
| + }
|
| + DispatchPointerEvent(
|
| + capturing_target,
|
| + pointer_event_factory_.CreatePointerCaptureEvent(
|
| + pointer_event, EventTypeNames::lostpointercapture));
|
| + }
|
| +}
|
| +
|
| void PointerEventManager::RemoveTargetFromPointerCapturingMapping(
|
| PointerCapturingMap& map,
|
| const EventTarget* target) {
|
| @@ -666,6 +685,10 @@ void PointerEventManager::ReleasePointerCapture(int pointer_id,
|
| ReleasePointerCapture(pointer_id);
|
| }
|
|
|
| +void PointerEventManager::ReleaseMousePointerCapture() {
|
| + ReleasePointerCapture(PointerEventFactory::kMouseId);
|
| +}
|
| +
|
| bool PointerEventManager::HasPointerCapture(int pointer_id,
|
| const EventTarget* target) const {
|
| return pending_pointer_capture_target_.at(pointer_id) == target;
|
|
|