| Index: Source/platform/PlatformGestureEvent.h
|
| diff --git a/Source/platform/PlatformGestureEvent.h b/Source/platform/PlatformGestureEvent.h
|
| index 254224640898f9ccbc5dfc7b613207f82a226dcc..f407d9b93c88328f87eb6ccc881966ea72ac8c5f 100644
|
| --- a/Source/platform/PlatformGestureEvent.h
|
| +++ b/Source/platform/PlatformGestureEvent.h
|
| @@ -49,15 +49,16 @@ public:
|
| , m_globalPosition(globalPosition)
|
| , m_area(area)
|
| {
|
| - ASSERT(type == PlatformEvent::GestureScrollBegin
|
| + memset(&m_data, 0, sizeof(m_data));
|
| + if (type == PlatformEvent::GestureScrollBegin
|
| || type == PlatformEvent::GestureScrollEnd
|
| || type == PlatformEvent::GestureScrollUpdate
|
| - || type == PlatformEvent::GestureScrollUpdateWithoutPropagation);
|
| - memset(&m_data, 0, sizeof(m_data));
|
| - m_data.m_scrollUpdate.m_deltaX = deltaX;
|
| - m_data.m_scrollUpdate.m_deltaY = deltaY;
|
| - m_data.m_scrollUpdate.m_velocityX = velocityX;
|
| - m_data.m_scrollUpdate.m_velocityY = velocityY;
|
| + || type == PlatformEvent::GestureScrollUpdateWithoutPropagation) {
|
| + m_data.m_scrollUpdate.m_deltaX = deltaX;
|
| + m_data.m_scrollUpdate.m_deltaY = deltaY;
|
| + m_data.m_scrollUpdate.m_velocityX = velocityX;
|
| + m_data.m_scrollUpdate.m_velocityY = velocityY;
|
| + }
|
| }
|
|
|
| const IntPoint& position() const { return m_position; } // PlatformWindow coordinates.
|
| @@ -105,6 +106,43 @@ public:
|
| return m_data.m_pinchUpdate.m_scale;
|
| }
|
|
|
| + void applyTouchAdjustment(const IntPoint& adjustedPosition)
|
| + {
|
| + // Update the window-relative position of the event so that the node that was
|
| + // ultimately hit is under this point (i.e. elementFromPoint for the client
|
| + // co-ordinates in a 'click' event should yield the target). The global
|
| + // position is intentionally left unmodified because it's intended to reflect
|
| + // raw co-ordinates unrelated to any content.
|
| + m_position = adjustedPosition;
|
| + }
|
| +
|
| + bool isScrollEvent() const
|
| + {
|
| + switch (m_type) {
|
| + case GestureScrollBegin:
|
| + case GestureScrollEnd:
|
| + case GestureScrollUpdate:
|
| + case GestureScrollUpdateWithoutPropagation:
|
| + case GestureFlingStart:
|
| + case GesturePinchBegin:
|
| + case GesturePinchEnd:
|
| + case GesturePinchUpdate:
|
| + return true;
|
| + case GestureTap:
|
| + case GestureTapUnconfirmed:
|
| + case GestureTapDown:
|
| + case GestureShowPress:
|
| + case GestureTapDownCancel:
|
| + case GestureTwoFingerTap:
|
| + case GestureLongPress:
|
| + case GestureLongTap:
|
| + return false;
|
| + default:
|
| + ASSERT_NOT_REACHED();
|
| + return false;
|
| + }
|
| + }
|
| +
|
| protected:
|
| IntPoint m_position;
|
| IntPoint m_globalPosition;
|
|
|