Index: sky/engine/core/frame/NewEventHandler.cpp |
diff --git a/sky/engine/core/frame/NewEventHandler.cpp b/sky/engine/core/frame/NewEventHandler.cpp |
index 2b0598c720720941601a18aabeac06449af5c6a4..0915c05c2f5f5a875086fd2b30fbccd06e9a6292 100644 |
--- a/sky/engine/core/frame/NewEventHandler.cpp |
+++ b/sky/engine/core/frame/NewEventHandler.cpp |
@@ -13,6 +13,7 @@ |
#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/frame/LocalFrame.h" |
#include "sky/engine/core/frame/FrameView.h" |
#include "sky/engine/core/rendering/RenderObject.h" |
@@ -95,6 +96,12 @@ bool NewEventHandler::dispatchKeyboardEvent(Node& target, const WebKeyboardEvent |
return target.dispatchEvent(keyboardEvent.release()); |
} |
+bool NewEventHandler::dispatchWheelEvent(Node& target, const WebWheelEvent& event) |
+{ |
+ RefPtr<WheelEvent> wheelEvent = WheelEvent::create(event); |
+ return target.dispatchEvent(wheelEvent.release()); |
+} |
+ |
bool NewEventHandler::dispatchClickEvent(Node& capturingTarget, const WebPointerEvent& event) |
{ |
ASSERT(event.type == WebInputEvent::PointerUp); |
@@ -167,6 +174,13 @@ bool NewEventHandler::handleKeyboardEvent(const WebKeyboardEvent& event) |
return handled; |
} |
+bool NewEventHandler::handleWheelEvent(const WebWheelEvent& event) |
+{ |
+ HitTestResult hitTestResult = performHitTest(positionForEvent(event)); |
+ RefPtr<Node> target = targetForHitTestResult(hitTestResult); |
+ return target && !dispatchWheelEvent(*target, event); |
+} |
+ |
bool NewEventHandler::handlePointerDownEvent(const WebPointerEvent& event) |
{ |
// In principle, we shouldn't get another pointer down for the same |