Chromium Code Reviews| Index: third_party/WebKit/Source/core/input/PointerEventManager.h |
| diff --git a/third_party/WebKit/Source/core/input/PointerEventManager.h b/third_party/WebKit/Source/core/input/PointerEventManager.h |
| index 093f739b9ec63339e35f1191907e3c4d1bc3c50c..acb07c486053f5846401431570d26a339e08f935 100644 |
| --- a/third_party/WebKit/Source/core/input/PointerEventManager.h |
| +++ b/third_party/WebKit/Source/core/input/PointerEventManager.h |
| @@ -54,11 +54,30 @@ public: |
| // https://w3c.github.io/pointerevents/#compatibility-mapping-with-mouse-events |
| void conditionallyEnableMouseEventForPointerTypeMouse(unsigned); |
| + void elementRemoved(EventTarget*); |
| + void setPointerCapture(int, EventTarget*); |
| + void releasePointerCapture(int, EventTarget*); |
| + void implicitReleasePointerCapture(int); |
|
mustaq
2016/02/29 19:55:41
implicitReleasePointerCapture could be private.
Navid Zolghadr
2016/02/29 20:10:42
Yup. I forgot to move it to private.
|
| + bool isActive(const int); |
| private: |
| - PassRefPtrWillBeRawPtr<Node> getEffectiveTargetForPointerEvent( |
| - PassRefPtrWillBeRawPtr<Node>, |
| - PassRefPtrWillBeRawPtr<PointerEvent>); |
| + typedef WillBeHeapHashMap<int, RefPtrWillBeMember<EventTarget>> PointerCapturingMap; |
| + class NodeUnderPointerAttributes { |
|
mustaq
2016/02/29 19:55:40
EventTargetAttributes?
Navid Zolghadr
2016/02/29 20:10:42
Sure. I Will rename.
|
| + DISALLOW_NEW_EXCEPT_PLACEMENT_NEW(); |
| + public: |
| + DEFINE_INLINE_TRACE() |
| + { |
| + visitor->trace(target); |
| + } |
| + RefPtrWillBeMember<EventTarget> target; |
| + bool hasRecievedOverEvent; |
| + NodeUnderPointerAttributes() {} |
| + NodeUnderPointerAttributes(PassRefPtrWillBeRawPtr<EventTarget> target, |
| + bool hasRecievedOverEvent) |
| + : target(target) |
| + , hasRecievedOverEvent(hasRecievedOverEvent) {} |
| + }; |
| + |
| void sendNodeTransitionEvents( |
| PassRefPtrWillBeRawPtr<EventTarget> exitedTarget, |
| PassRefPtrWillBeRawPtr<EventTarget> enteredTarget, |
| @@ -67,6 +86,21 @@ private: |
| bool sendMouseEvent = false); |
| void setNodeUnderPointer(PassRefPtrWillBeRawPtr<PointerEvent>, |
| PassRefPtrWillBeRawPtr<EventTarget>); |
| + void processPendingPointerCapture( |
| + const PassRefPtrWillBeRawPtr<PointerEvent>, |
| + PassRefPtrWillBeRawPtr<EventTarget>, |
| + const PlatformMouseEvent& = PlatformMouseEvent(), |
| + bool sendMouseEvent = false); |
| + void removeTargetFromPointerCapturingMapping(PointerCapturingMap&, EventTarget*); |
| + PassRefPtrWillBeRawPtr<EventTarget> getEffectiveTargetForPointerEvent( |
| + PassRefPtrWillBeRawPtr<EventTarget>, int); |
| + EventTarget* getCapturingNode(int); |
| + void removePointerEvent(const PassRefPtrWillBeRawPtr<PointerEvent>); |
| + WebInputEventResult dispatchPointerEvent( |
| + PassRefPtrWillBeRawPtr<EventTarget>, |
| + PassRefPtrWillBeRawPtr<PointerEvent>, |
| + bool checkForListener = false); |
| + |
| // Prevents firing mousedown, mousemove & mouseup in-between a canceled pointerdown and next pointerup/pointercancel. |
| // See "PREVENT MOUSE EVENT flag" in the spec: |
| @@ -77,8 +111,10 @@ private: |
| // which might be different than m_nodeUnderMouse in EventHandler. That one |
| // keeps track of any compatibility mouse event positions but this map for |
| // the pointer with id=1 is only taking care of true mouse related events. |
| - WillBeHeapHashMap<int, RefPtrWillBeMember<EventTarget>> m_nodeUnderPointer; |
| + WillBeHeapHashMap<int, NodeUnderPointerAttributes> m_nodeUnderPointer; |
| + PointerCapturingMap m_pointerCaptureTarget; |
| + PointerCapturingMap m_pendingPointerCaptureTarget; |
| PointerEventFactory m_pointerEventFactory; |
| }; |