// 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; }
PassRefPtr<GestureEvent> GestureEvent::create(PassRefPtr<AbstractView> view, const PlatformGestureEvent& event) { AtomicString eventType; switch (event.type()) { case PlatformEvent::GestureScrollBegin: eventType = eventNames().gesturescrollstartEvent; break; case PlatformEvent::GestureScrollEnd: eventType = eventNames().gesturescrollendEvent; break; case PlatformEvent::GestureScrollUpdate: case PlatformEvent::GestureScrollUpdateWithoutPropagation: eventType = eventNames().gesturescrollupdateEvent; break; case PlatformEvent::GestureTap: eventType = eventNames().gesturetapEvent; break; case PlatformEvent::GestureTapDown: eventType = eventNames().gesturetapdownEvent; break; case PlatformEvent::GestureTwoFingerTap: case PlatformEvent::GestureLongPress: case PlatformEvent::GesturePinchBegin: case PlatformEvent::GesturePinchEnd: case PlatformEvent::GesturePinchUpdate: case PlatformEvent::GestureTapDownCancel: default: return 0; } return adoptRef(new GestureEvent(eventType, view, event.globalPosition().x(), event.globalPosition().y(), event.position().x(), event.position().y(), event.ctrlKey(), event.altKey(), event.shiftKey(), event.metaKey(), event.deltaX(), event.deltaY())); }
PassRefPtr<GestureEvent> GestureEvent::create(PassRefPtr<AbstractView> view, const PlatformGestureEvent& event) { AtomicString eventType; float deltaX = 0; float deltaY = 0; switch (event.type()) { case PlatformEvent::GestureScrollBegin: eventType = EventTypeNames::gesturescrollstart; break; case PlatformEvent::GestureScrollEnd: eventType = EventTypeNames::gesturescrollend; break; case PlatformEvent::GestureScrollUpdate: case PlatformEvent::GestureScrollUpdateWithoutPropagation: // Only deltaX/Y are used when converting this // back to a PlatformGestureEvent. eventType = EventTypeNames::gesturescrollupdate; deltaX = event.deltaX(); deltaY = event.deltaY(); break; case PlatformEvent::GestureTap: eventType = EventTypeNames::gesturetap; break; case PlatformEvent::GestureTapUnconfirmed: eventType = EventTypeNames::gesturetapunconfirmed; break; case PlatformEvent::GestureTapDown: eventType = EventTypeNames::gesturetapdown; break; case PlatformEvent::GestureShowPress: eventType = EventTypeNames::gestureshowpress; break; case PlatformEvent::GestureTwoFingerTap: case PlatformEvent::GestureLongPress: case PlatformEvent::GesturePinchBegin: case PlatformEvent::GesturePinchEnd: case PlatformEvent::GesturePinchUpdate: case PlatformEvent::GestureTapDownCancel: default: return nullptr; } return adoptRef(new GestureEvent(eventType, view, event.globalPosition().x(), event.globalPosition().y(), event.position().x(), event.position().y(), event.ctrlKey(), event.altKey(), event.shiftKey(), event.metaKey(), deltaX, deltaY)); }