diff options
Diffstat (limited to 'Source/WebCore/dom/WheelEvent.cpp')
-rw-r--r-- | Source/WebCore/dom/WheelEvent.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/Source/WebCore/dom/WheelEvent.cpp b/Source/WebCore/dom/WheelEvent.cpp index 0981a57..a673c93 100644 --- a/Source/WebCore/dom/WheelEvent.cpp +++ b/Source/WebCore/dom/WheelEvent.cpp @@ -23,7 +23,10 @@ #include "config.h" #include "WheelEvent.h" +#include "EventDispatcher.h" #include "EventNames.h" +#include "PlatformWheelEvent.h" + #include <wtf/MathExtras.h> namespace WebCore { @@ -92,4 +95,32 @@ bool WheelEvent::isWheelEvent() const return true; } +inline static WheelEvent::Granularity granularity(const PlatformWheelEvent& event) +{ + return event.granularity() == ScrollByPageWheelEvent ? WheelEvent::Page : WheelEvent::Pixel; +} + +WheelEventDispatchMediator::WheelEventDispatchMediator(const PlatformWheelEvent& event, PassRefPtr<AbstractView> view) +{ + if (!(event.deltaX() || event.deltaY())) + return; + + setEvent(WheelEvent::create(event.wheelTicksX(), event.wheelTicksY(), event.deltaX(), event.deltaY(), granularity(event), + view, event.globalX(), event.globalY(), event.x(), event.y(), event.ctrlKey(), event.altKey(), event.shiftKey(), event.metaKey())); + +} + +WheelEvent* WheelEventDispatchMediator::event() const +{ + return static_cast<WheelEvent*>(EventDispatchMediator::event()); +} + +bool WheelEventDispatchMediator::dispatchEvent(EventDispatcher* dispatcher) const +{ + if (!event()) + return true; + + return EventDispatchMediator::dispatchEvent(dispatcher) && !event()->defaultHandled(); +} + } // namespace WebCore |