Index: Source/core/page/EventHandler.cpp |
diff --git a/Source/core/page/EventHandler.cpp b/Source/core/page/EventHandler.cpp |
index 09a9245b32e5bfe8025e4b12bc9ee988429905c1..1ffe4a11f6f758d063d67f8eaec353a72147b1b0 100644 |
--- a/Source/core/page/EventHandler.cpp |
+++ b/Source/core/page/EventHandler.cpp |
@@ -111,6 +111,8 @@ |
namespace WebCore { |
+DEFINE_GC_MAP(EventHandler); |
+ |
using namespace HTMLNames; |
// The link drag hysteresis is much larger than the others because there |
@@ -361,7 +363,7 @@ void EventHandler::clear() |
m_capturingMouseEventsNode = nullptr; |
m_latchedWheelEventNode = nullptr; |
m_previousWheelScrolledNode = nullptr; |
- m_originatingTouchPointTargets->clear(); |
+ m_originatingTouchPointTargets.clear(); |
m_originatingTouchPointDocument.clear(); |
m_originatingTouchPointTargetKey = 0; |
m_scrollGestureHandlingNode = nullptr; |
@@ -3772,7 +3774,7 @@ bool EventHandler::handleTouchEvent(const PlatformTouchEvent& event) |
continue; |
if (!doc->hasTouchEventHandlers()) |
continue; |
- m_originatingTouchPointTargets->set(touchPointTargetKey, node); |
+ m_originatingTouchPointTargets.set(touchPointTargetKey, node); |
touchTarget = node; |
} else if (pointState == PlatformTouchPoint::TouchReleased || pointState == PlatformTouchPoint::TouchCancelled) { |
// We only perform a hittest on release or cancel to unset :active or :hover state. |
@@ -3785,10 +3787,10 @@ bool EventHandler::handleTouchEvent(const PlatformTouchEvent& event) |
} |
// The target should be the original target for this touch, so get it from the hashmap. As it's a release or cancel |
// we also remove it from the map. |
- touchTarget = m_originatingTouchPointTargets->take(touchPointTargetKey); |
+ touchTarget = m_originatingTouchPointTargets.take(touchPointTargetKey); |
} else |
// No hittest is performed on move or stationary, since the target is not allowed to change anyway. |
- touchTarget = m_originatingTouchPointTargets->get(touchPointTargetKey); |
+ touchTarget = m_originatingTouchPointTargets.get(touchPointTargetKey); |
if (!touchTarget) |
continue; |
@@ -4009,4 +4011,21 @@ unsigned EventHandler::accessKeyModifiers() |
#endif |
} |
+void EventHandler::accept(Visitor* visitor) const |
+{ |
+ visitor->visit(m_mousePressNode); |
+ visitor->visit(m_capturingMouseEventsNode); |
+ visitor->visit(m_nodeUnderMouse); |
+ visitor->visit(m_lastNodeUnderMouse); |
+ visitor->visit(m_clickNode); |
+ visitor->visit(m_dragTarget); |
+ visitor->visit(m_frameSetBeingResized); |
+ visitor->visit(m_latchedWheelEventNode); |
+ visitor->visit(m_previousWheelScrolledNode); |
+ visitor->visit(m_originatingTouchPointDocument); |
+ visitor->visit(m_scrollGestureHandlingNode); |
+ visitor->visit(m_previousGestureScrolledNode); |
+ visitor->visit(m_originatingTouchPointTargets); |
+} |
+ |
} // namespace WebCore |