Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(423)

Unified Diff: third_party/WebKit/Source/core/input/EventHandler.cpp

Issue 2147263003: Send got/lostpointercapture immediately if possible (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Make PointerEventManager a GC object Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/input/EventHandler.cpp
diff --git a/third_party/WebKit/Source/core/input/EventHandler.cpp b/third_party/WebKit/Source/core/input/EventHandler.cpp
index aaa15c7641c5b62fc981bb806c25428ee34e8e30..a7389e4bc5c7da2ce53909dde534f5b1a4f6d0bb 100644
--- a/third_party/WebKit/Source/core/input/EventHandler.cpp
+++ b/third_party/WebKit/Source/core/input/EventHandler.cpp
@@ -191,10 +191,10 @@ EventHandler::EventHandler(LocalFrame* frame)
, m_shouldOnlyFireDragOverEvent(false)
, m_mousePositionIsUnknown(true)
, m_mouseDownTimestamp(0)
- , m_pointerEventManager(frame)
+ , m_pointerEventManager(new PointerEventManager(frame))
, m_scrollManager(frame)
, m_keyboardEventManager(frame, &m_scrollManager)
- , m_gestureManager(frame, &m_scrollManager, &m_pointerEventManager, m_selectionController)
+ , m_gestureManager(frame, &m_scrollManager, m_pointerEventManager, m_selectionController)
, m_activeIntervalTimer(this, &EventHandler::activeIntervalTimerFired)
{
}
@@ -251,7 +251,7 @@ void EventHandler::clear()
m_mousePressed = false;
m_capturesDragging = false;
m_capturingMouseEventsNode = nullptr;
- m_pointerEventManager.clear();
+ m_pointerEventManager->clear();
m_scrollManager.clear();
m_gestureManager.clear();
m_mouseDownMayStartDrag = false;
@@ -1011,7 +1011,7 @@ WebInputEventResult EventHandler::handleMouseMoveOrLeaveEvent(const PlatformMous
}
// Treat any mouse move events as readonly if the user is currently touching the screen.
- if (m_pointerEventManager.isAnyTouchActive())
+ if (m_pointerEventManager->isAnyTouchActive())
hitType |= HitTestRequest::Active | HitTestRequest::ReadOnly;
HitTestRequest request(hitType);
MouseEventWithHitTestResults mev = MouseEventWithHitTestResults(mouseEvent, HitTestResult(request, LayoutPoint()));
@@ -1457,7 +1457,7 @@ void EventHandler::updateMouseEventTargetNodeAndSendEvents(Node* targetNode,
const PlatformMouseEvent& mouseEvent, bool isFrameBoundaryTransition)
{
Node* lastNodeUnderMouse = updateMouseEventTargetNode(targetNode, mouseEvent);
- m_pointerEventManager.sendMouseAndPossiblyPointerBoundaryEvents(
+ m_pointerEventManager->sendMouseAndPossiblyPointerBoundaryEvents(
lastNodeUnderMouse, m_nodeUnderMouse, mouseEvent,
isFrameBoundaryTransition);
}
@@ -1474,23 +1474,23 @@ WebInputEventResult EventHandler::dispatchMouseEvent(const AtomicString& eventTy
bool EventHandler::isPointerEventActive(int pointerId)
{
- return m_pointerEventManager.isActive(pointerId);
+ return m_pointerEventManager->isActive(pointerId);
}
void EventHandler::setPointerCapture(int pointerId, EventTarget* target)
{
// TODO(crbug.com/591387): This functionality should be per page not per frame.
- m_pointerEventManager.setPointerCapture(pointerId, target);
+ m_pointerEventManager->setPointerCapture(pointerId, target);
}
void EventHandler::releasePointerCapture(int pointerId, EventTarget* target)
{
- m_pointerEventManager.releasePointerCapture(pointerId, target);
+ m_pointerEventManager->releasePointerCapture(pointerId, target);
}
void EventHandler::elementRemoved(EventTarget* target)
{
- m_pointerEventManager.elementRemoved(target);
+ m_pointerEventManager->elementRemoved(target);
}
// TODO(mustaq): Make PE drive ME dispatch & bookkeeping in EventHandler.
@@ -1502,7 +1502,7 @@ WebInputEventResult EventHandler::updatePointerTargetAndDispatchEvents(const Ato
Node* lastNodeUnderMouse = updateMouseEventTargetNode(targetNode, mouseEvent);
- return m_pointerEventManager.sendMousePointerEvent(
+ return m_pointerEventManager->sendMousePointerEvent(
m_nodeUnderMouse, mouseEventType, clickCount, mouseEvent, nullptr,
lastNodeUnderMouse);
}
@@ -2559,7 +2559,7 @@ HitTestResult EventHandler::hitTestResultInFrame(LocalFrame* frame, const Layout
WebInputEventResult EventHandler::handleTouchEvent(const PlatformTouchEvent& event)
{
TRACE_EVENT0("blink", "EventHandler::handleTouchEvent");
- return m_pointerEventManager.handleTouchEvents(event);
+ return m_pointerEventManager->handleTouchEvents(event);
}
void EventHandler::setLastKnownMousePosition(const PlatformMouseEvent& event)

Powered by Google App Engine
This is Rietveld 408576698