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

Unified Diff: third_party/WebKit/Source/core/events/PointerEventManager.cpp

Issue 1670073004: Send node transition events for touch events (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixing the comment Created 4 years, 10 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/events/PointerEventManager.cpp
diff --git a/third_party/WebKit/Source/core/events/PointerEventManager.cpp b/third_party/WebKit/Source/core/events/PointerEventManager.cpp
deleted file mode 100644
index 233058eb74900b7c91624203906e13bd34e0639d..0000000000000000000000000000000000000000
--- a/third_party/WebKit/Source/core/events/PointerEventManager.cpp
+++ /dev/null
@@ -1,215 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "core/events/PointerEventManager.h"
-
-namespace blink {
-
-namespace {
-
-inline int toInt(WebPointerProperties::PointerType t) { return static_cast<int>(t); }
-
-const char* pointerTypeNameForWebPointPointerType(WebPointerProperties::PointerType type)
-{
- switch (type) {
- case WebPointerProperties::PointerType::Unknown:
- return "";
- case WebPointerProperties::PointerType::Touch:
- return "touch";
- case WebPointerProperties::PointerType::Pen:
- return "pen";
- case WebPointerProperties::PointerType::Mouse:
- return "mouse";
- }
- ASSERT_NOT_REACHED();
- return "";
-}
-
-} // namespace
-
-const PointerEventManager::MappedId PointerEventManager::s_invalidId = 0;
-
-// Mouse id is 1 to behave the same as MS Edge for compatibility reasons.
-const PointerEventManager::MappedId PointerEventManager::s_mouseId = 1;
-
-EventTarget* PointerEventManager::getCapturingNode(PassRefPtrWillBeRawPtr<PointerEvent> pointerEvent)
-{
- // TODO(nzolghadr): Add APIs to set the capturing nodes and return the correct node here
- return nullptr;
-}
-
-float getPointerEventPressure(float force, int buttons)
-{
- if (std::isnan(force))
- return buttons ? 0.5 : 0;
- return force;
-}
-
-void PointerEventManager::setIdAndType(PointerEventInit &pointerEventInit,
- const WebPointerProperties &pointerProperties)
-{
- const WebPointerProperties::PointerType pointerType = pointerProperties.pointerType;
- MappedId pointerId = add(PointerEventManager::IncomingId(toInt(pointerType), pointerProperties.id));
- pointerEventInit.setPointerId(pointerId);
- pointerEventInit.setPointerType(pointerTypeNameForWebPointPointerType(pointerType));
- pointerEventInit.setIsPrimary(isPrimary(pointerId));
-}
-
-PassRefPtrWillBeRawPtr<PointerEvent> PointerEventManager::create(const AtomicString& type,
- const PlatformMouseEvent& mouseEvent,
- PassRefPtrWillBeRawPtr<Node> relatedTarget,
- PassRefPtrWillBeRawPtr<AbstractView> view)
-{
- PointerEventInit pointerEventInit;
-
- setIdAndType(pointerEventInit, mouseEvent.pointerProperties());
-
- pointerEventInit.setScreenX(mouseEvent.globalPosition().x());
- pointerEventInit.setScreenY(mouseEvent.globalPosition().y());
- pointerEventInit.setClientX(mouseEvent.position().x());
- pointerEventInit.setClientY(mouseEvent.position().y());
-
- pointerEventInit.setButton(mouseEvent.button());
- pointerEventInit.setButtons(MouseEvent::platformModifiersToButtons(mouseEvent.modifiers()));
- pointerEventInit.setPressure(getPointerEventPressure(
- mouseEvent.pointerProperties().force, pointerEventInit.buttons()));
-
- UIEventWithKeyState::setFromPlatformModifiers(pointerEventInit, mouseEvent.modifiers());
-
- pointerEventInit.setBubbles(type != EventTypeNames::pointerenter
- && type != EventTypeNames::pointerleave);
- pointerEventInit.setCancelable(type != EventTypeNames::pointerenter
- && type != EventTypeNames::pointerleave && type != EventTypeNames::pointercancel);
-
- pointerEventInit.setView(view);
- if (relatedTarget)
- pointerEventInit.setRelatedTarget(relatedTarget);
-
- return PointerEvent::create(type, pointerEventInit);
-}
-
-PassRefPtrWillBeRawPtr<PointerEvent> PointerEventManager::create(const AtomicString& type,
- const PlatformTouchPoint& touchPoint, PlatformEvent::Modifiers modifiers,
- const double width, const double height,
- const double clientX, const double clientY)
-{
- const PlatformTouchPoint::State pointState = touchPoint.state();
-
- bool pointerReleasedOrCancelled = pointState == PlatformTouchPoint::TouchReleased
- || pointState == PlatformTouchPoint::TouchCancelled;
-
- bool isEnterOrLeave = false;
-
- PointerEventInit pointerEventInit;
-
- setIdAndType(pointerEventInit, touchPoint.pointerProperties());
-
- pointerEventInit.setWidth(width);
- pointerEventInit.setHeight(height);
- pointerEventInit.setTiltX(touchPoint.pointerProperties().tiltX);
- pointerEventInit.setTiltY(touchPoint.pointerProperties().tiltY);
- pointerEventInit.setScreenX(touchPoint.screenPos().x());
- pointerEventInit.setScreenY(touchPoint.screenPos().y());
- pointerEventInit.setClientX(clientX);
- pointerEventInit.setClientY(clientY);
- pointerEventInit.setButton(0);
- pointerEventInit.setButtons(pointerReleasedOrCancelled ? 0 : 1);
- pointerEventInit.setPressure(getPointerEventPressure(
- touchPoint.force(), pointerEventInit.buttons()));
-
- UIEventWithKeyState::setFromPlatformModifiers(pointerEventInit, modifiers);
-
- pointerEventInit.setBubbles(!isEnterOrLeave);
- pointerEventInit.setCancelable(!isEnterOrLeave && pointState != PlatformTouchPoint::TouchCancelled);
-
- return PointerEvent::create(type, pointerEventInit);
-}
-
-
-PassRefPtrWillBeRawPtr<PointerEvent> PointerEventManager::createPointerCancel(const PlatformTouchPoint& touchPoint)
-{
- PointerEventInit pointerEventInit;
-
- setIdAndType(pointerEventInit, touchPoint.pointerProperties());
-
- pointerEventInit.setBubbles(true);
- pointerEventInit.setCancelable(false);
-
- return PointerEvent::create(EventTypeNames::pointercancel, pointerEventInit);
-}
-
-PointerEventManager::PointerEventManager()
-{
- clear();
-}
-
-PointerEventManager::~PointerEventManager()
-{
- clear();
-}
-
-void PointerEventManager::clear()
-{
- for (int type = 0; type <= toInt(WebPointerProperties::PointerType::LastEntry); type++) {
- m_primaryId[type] = PointerEventManager::s_invalidId;
- m_idCount[type] = 0;
- }
- m_idMapping.clear();
- m_idReverseMapping.clear();
-
- // Always add mouse pointer in initialization and never remove it.
- // No need to add it to m_idMapping as it is not going to be used with the existing APIs
- m_primaryId[toInt(WebPointerProperties::PointerType::Mouse)] = s_mouseId;
- m_idReverseMapping.add(s_mouseId, IncomingId(toInt(WebPointerProperties::PointerType::Mouse), 0));
-
- m_currentId = PointerEventManager::s_mouseId+1;
-}
-
-PointerEventManager::MappedId PointerEventManager::add(const IncomingId p)
-{
- // Do not add extra mouse pointer as it was added in initialization
- if (p.first == toInt(WebPointerProperties::PointerType::Mouse))
- return s_mouseId;
-
- int type = p.first;
- if (m_idMapping.contains(p))
- return m_idMapping.get(p);
- // We do not handle the overflow of m_currentId as it should be very rare
- MappedId mappedId = m_currentId++;
- if (!m_idCount[type])
- m_primaryId[type] = mappedId;
- m_idCount[type]++;
- m_idMapping.add(p, mappedId);
- m_idReverseMapping.add(mappedId, p);
- return static_cast<PointerEventManager::MappedId>(mappedId);
-}
-
-void PointerEventManager::remove(const PassRefPtrWillBeRawPtr<PointerEvent> pointerEvent)
-{
- MappedId mappedId = pointerEvent->pointerId();
- // Do not remove mouse pointer id as it should always be there
- if (mappedId == s_mouseId || !m_idReverseMapping.contains(mappedId))
- return;
-
- IncomingId p = m_idReverseMapping.get(mappedId);
- int type = p.first;
- m_idReverseMapping.remove(mappedId);
- m_idMapping.remove(p);
- if (m_primaryId[type] == mappedId)
- m_primaryId[type] = PointerEventManager::s_invalidId;
- m_idCount[type]--;
-}
-
-bool PointerEventManager::isPrimary(PointerEventManager::MappedId mappedId) const
-{
- if (!m_idReverseMapping.contains(mappedId))
- return false;
-
- IncomingId p = m_idReverseMapping.get(mappedId);
- int type = p.first;
- return m_primaryId[type] == mappedId;
-}
-
-
-} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698