Index: sky/engine/public/sky/sky_view.cc |
diff --git a/sky/engine/public/sky/sky_view.cc b/sky/engine/public/sky/sky_view.cc |
index 0be12b447d723386d08dbcd93847eebcf7d2a63d..b057cc4114d611f4e99b25bc62f87b7c65c33c82 100644 |
--- a/sky/engine/public/sky/sky_view.cc |
+++ b/sky/engine/public/sky/sky_view.cc |
@@ -6,10 +6,16 @@ |
#include "sky/engine/public/sky/sky_view.h" |
#include "base/bind.h" |
+#include "base/trace_event/trace_event.h" |
+#include "sky/engine/core/events/GestureEvent.h" |
+#include "sky/engine/core/events/KeyboardEvent.h" |
+#include "sky/engine/core/events/PointerEvent.h" |
+#include "sky/engine/core/events/WheelEvent.h" |
#include "sky/engine/core/script/dart_controller.h" |
#include "sky/engine/core/script/dom_dart_state.h" |
#include "sky/engine/core/view/View.h" |
#include "sky/engine/platform/weborigin/KURL.h" |
+#include "sky/engine/public/platform/WebInputEvent.h" |
#include "sky/engine/public/sky/sky_view_client.h" |
namespace blink { |
@@ -58,7 +64,29 @@ skia::RefPtr<SkPicture> SkyView::Paint() { |
return skia::RefPtr<SkPicture>(); |
} |
-bool SkyView::HandleInputEvent(const WebInputEvent& event) { |
+bool SkyView::HandleInputEvent(const WebInputEvent& inputEvent) { |
+ TRACE_EVENT0("input", "SkyView::HandleInputEvent"); |
+ |
+ if (WebInputEvent::isPointerEventType(inputEvent.type)) { |
+ const WebPointerEvent& event = static_cast<const WebPointerEvent&>(inputEvent); |
+ return data_->view_->handleInputEvent(PointerEvent::create(event)); |
+ } |
+ |
+ if (WebInputEvent::isGestureEventType(inputEvent.type)) { |
+ const WebGestureEvent& event = static_cast<const WebGestureEvent&>(inputEvent); |
+ return data_->view_->handleInputEvent(GestureEvent::create(event)); |
+ } |
+ |
+ if (WebInputEvent::isKeyboardEventType(inputEvent.type)) { |
+ const WebKeyboardEvent& event = static_cast<const WebKeyboardEvent&>(inputEvent); |
+ return data_->view_->handleInputEvent(KeyboardEvent::create(event)); |
+ } |
+ |
+ if (WebInputEvent::isWheelEventType(inputEvent.type)) { |
+ const WebWheelEvent& event = static_cast<const WebWheelEvent&>(inputEvent); |
+ return data_->view_->handleInputEvent(WheelEvent::create(event)); |
+ } |
+ |
return false; |
} |