Index: Source/web/WebFrameWidgetImpl.cpp |
diff --git a/Source/web/WebFrameWidgetImpl.cpp b/Source/web/WebFrameWidgetImpl.cpp |
index 62178cb91e187697881031f697018612559e2438..2d9d4df0b310a0aa92b4d4609c08af7d2449cbf4 100644 |
--- a/Source/web/WebFrameWidgetImpl.cpp |
+++ b/Source/web/WebFrameWidgetImpl.cpp |
@@ -722,8 +722,33 @@ bool WebFrameWidgetImpl::handleMouseWheel(LocalFrame& mainFrame, const WebMouseW |
bool WebFrameWidgetImpl::handleGestureEvent(const WebGestureEvent& event) |
{ |
- // FIXME: Add gesture support. |
- return false; |
+ bool eventSwallowed = false; |
+ bool eventCancelled = false; |
+ switch (event.type) { |
+ case WebInputEvent::GestureScrollBegin: |
+ case WebInputEvent::GestureScrollEnd: |
+ case WebInputEvent::GestureScrollUpdate: |
+ case WebInputEvent::GestureTap: |
+ case WebInputEvent::GestureTapUnconfirmed: |
+ case WebInputEvent::GestureTapDown: |
+ case WebInputEvent::GestureShowPress: |
+ case WebInputEvent::GestureTapCancel: |
+ case WebInputEvent::GestureDoubleTap: |
+ case WebInputEvent::GestureTwoFingerTap: |
+ case WebInputEvent::GestureLongPress: |
+ case WebInputEvent::GestureLongTap: |
+ break; |
+ case WebInputEvent::GestureFlingStart: |
+ case WebInputEvent::GestureFlingCancel: |
+ m_client->didHandleGestureEvent(event, eventCancelled); |
+ return false; |
+ default: |
+ ASSERT_NOT_REACHED(); |
+ } |
+ LocalFrame* frame = m_localRoot->frame(); |
+ eventSwallowed = frame->eventHandler().handleGestureEvent(PlatformGestureEventBuilder(frame->view(), event)); |
+ m_client->didHandleGestureEvent(event, eventCancelled); |
+ return eventSwallowed; |
} |
bool WebFrameWidgetImpl::handleKeyEvent(const WebKeyboardEvent& event) |