// FIXME: Refactor this code to share functionality with EventHandler::handleGestureEvent. bool PopupContainer::handleGestureEvent(const PlatformGestureEvent& gestureEvent) { switch (gestureEvent.type()) { case PlatformEvent::GestureTap: { PlatformMouseEvent fakeMouseMove(gestureEvent.position(), gestureEvent.globalPosition(), NoButton, PlatformEvent::MouseMoved, /* clickCount */ 1, gestureEvent.shiftKey(), gestureEvent.ctrlKey(), gestureEvent.altKey(), gestureEvent.metaKey(), gestureEvent.timestamp()); PlatformMouseEvent fakeMouseDown(gestureEvent.position(), gestureEvent.globalPosition(), LeftButton, PlatformEvent::MousePressed, /* clickCount */ 1, gestureEvent.shiftKey(), gestureEvent.ctrlKey(), gestureEvent.altKey(), gestureEvent.metaKey(), gestureEvent.timestamp()); PlatformMouseEvent fakeMouseUp(gestureEvent.position(), gestureEvent.globalPosition(), LeftButton, PlatformEvent::MouseReleased, /* clickCount */ 1, gestureEvent.shiftKey(), gestureEvent.ctrlKey(), gestureEvent.altKey(), gestureEvent.metaKey(), gestureEvent.timestamp()); // handleMouseMoveEvent(fakeMouseMove); handleMouseDownEvent(fakeMouseDown); handleMouseReleaseEvent(fakeMouseUp); return true; } case PlatformEvent::GestureDoubleTap: break; case PlatformEvent::GestureScrollUpdate: case PlatformEvent::GestureScrollUpdateWithoutPropagation: { PlatformWheelEvent syntheticWheelEvent(gestureEvent.position(), gestureEvent.globalPosition(), gestureEvent.deltaX(), gestureEvent.deltaY(), gestureEvent.deltaX() / 120.0f, gestureEvent.deltaY() / 120.0f, ScrollByPixelWheelEvent, gestureEvent.shiftKey(), gestureEvent.ctrlKey(), gestureEvent.altKey(), gestureEvent.metaKey()); handleWheelEvent(syntheticWheelEvent); return true; } case PlatformEvent::GestureScrollBegin: case PlatformEvent::GestureScrollEnd: case PlatformEvent::GestureTapDown: break; default: ASSERT_NOT_REACHED(); } return false; }
// FIXME: Refactor this code to share functionality with EventHandler::handleGestureEvent. bool PopupContainer::handleGestureEvent(const PlatformGestureEvent& gestureEvent) { switch (gestureEvent.type()) { case PlatformGestureEvent::TapType: { PlatformMouseEvent fakeMouseMove(gestureEvent.position(), gestureEvent.globalPosition(), NoButton, MouseEventMoved, /* clickCount */ 1, gestureEvent.shiftKey(), gestureEvent.ctrlKey(), gestureEvent.altKey(), gestureEvent.metaKey(), gestureEvent.timestamp()); PlatformMouseEvent fakeMouseDown(gestureEvent.position(), gestureEvent.globalPosition(), LeftButton, MouseEventPressed, /* clickCount */ 1, gestureEvent.shiftKey(), gestureEvent.ctrlKey(), gestureEvent.altKey(), gestureEvent.metaKey(), gestureEvent.timestamp()); PlatformMouseEvent fakeMouseUp(gestureEvent.position(), gestureEvent.globalPosition(), LeftButton, MouseEventReleased, /* clickCount */ 1, gestureEvent.shiftKey(), gestureEvent.ctrlKey(), gestureEvent.altKey(), gestureEvent.metaKey(), gestureEvent.timestamp()); // handleMouseMoveEvent(fakeMouseMove); handleMouseDownEvent(fakeMouseDown); handleMouseReleaseEvent(fakeMouseUp); return true; } case PlatformGestureEvent::DoubleTapType: break; case PlatformGestureEvent::ScrollUpdateType: { PlatformWheelEvent syntheticWheelEvent(gestureEvent.position(), gestureEvent.globalPosition(), gestureEvent.deltaX(), gestureEvent.deltaY(), gestureEvent.deltaX() / 120.0f, gestureEvent.deltaY() / 120.0f, ScrollByPixelWheelEvent, gestureEvent.shiftKey(), gestureEvent.ctrlKey(), gestureEvent.altKey(), gestureEvent.metaKey()); handleWheelEvent(syntheticWheelEvent); return true; } case PlatformGestureEvent::ScrollBeginType: case PlatformGestureEvent::ScrollEndType: case PlatformGestureEvent::TapDownType: break; } return false; }