void EventTargetNode::dispatchWheelEvent(PlatformWheelEvent& e) { ASSERT(!eventDispatchForbidden()); if (e.deltaX() == 0 && e.deltaY() == 0) return; FrameView* view = document()->view(); if (!view) return; IntPoint pos = view->windowToContents(e.pos()); // Convert the deltas from pixels to lines if we have a pixel scroll event. float deltaX = e.deltaX(); float deltaY = e.deltaY(); // FIXME: Should we do anything with a ScrollByPageWheelEvent here? // It will be treated like a line scroll of 1 right now. if (e.granularity() == ScrollByPixelWheelEvent) { deltaX /= cMouseWheelPixelsPerLineStep; deltaY /= cMouseWheelPixelsPerLineStep; } RefPtr<WheelEvent> we = WheelEvent::create(e.deltaX(), e.deltaY(), document()->defaultView(), e.globalX(), e.globalY(), pos.x(), pos.y(), e.ctrlKey(), e.altKey(), e.shiftKey(), e.metaKey()); ExceptionCode ec = 0; if (!dispatchEvent(we.release(), ec)) e.accept(); }
WheelEventDispatchMediator::WheelEventDispatchMediator(const PlatformWheelEvent& event, PassRefPtr<AbstractView> view) { if (!(event.deltaX() || event.deltaY())) return; setEvent(WheelEvent::create(FloatPoint(event.wheelTicksX(), event.wheelTicksY()), FloatPoint(event.deltaX(), event.deltaY()), deltaMode(event), view, event.globalPosition(), event.position(), event.ctrlKey(), event.altKey(), event.shiftKey(), event.metaKey(), event.directionInvertedFromDevice())); }
PassRefPtrWillBeRawPtr<WheelEvent> WheelEvent::create(const PlatformWheelEvent& event, PassRefPtrWillBeRawPtr<AbstractView> view) { return adoptRefWillBeNoop(new WheelEvent(FloatPoint(event.wheelTicksX(), event.wheelTicksY()), FloatPoint(event.deltaX(), event.deltaY()), convertDeltaMode(event), view, event.globalPosition(), event.position(), event.ctrlKey(), event.altKey(), event.shiftKey(), event.metaKey(), MouseEvent::platformModifiersToButtons(event.modifiers()), event.canScroll(), event.hasPreciseScrollingDeltas(), static_cast<Event::RailsMode>(event.railsMode()))); }
WheelEventDispatchMediator::WheelEventDispatchMediator(const PlatformWheelEvent& event, PassRefPtr<AbstractView> view) { if (!(event.deltaX() || event.deltaY())) return; setEvent(WheelEvent::create(FloatPoint(event.wheelTicksX(), event.wheelTicksY()), FloatPoint(event.deltaX(), event.deltaY()), granularity(event), view, IntPoint(event.globalX(), event.globalY()), IntPoint(event.x(), event.y()), event.ctrlKey(), event.altKey(), event.shiftKey(), event.metaKey(), event.webkitDirectionInvertedFromDevice())); }
WheelEvent::WheelEvent(const PlatformWheelEvent& event, DOMWindow* view) : MouseEvent(eventNames().wheelEvent, true, true, event.timestamp(), view, 0, event.globalPosition(), event.position() #if ENABLE(POINTER_LOCK) , { } #endif , event.ctrlKey(), event.altKey(), event.shiftKey(), event.metaKey(), 0, 0, 0, 0, 0, false) , m_wheelDelta(event.wheelTicksX() * TickMultiplier, event.wheelTicksY() * TickMultiplier) , m_deltaX(-event.deltaX()) , m_deltaY(-event.deltaY()) , m_deltaMode(determineDeltaMode(event)) , m_wheelEvent(event) , m_initializedWithPlatformWheelEvent(true) { }
void EventDispatcher::dispatchWheelEvent(Node* node, PlatformWheelEvent& event) { ASSERT(!eventDispatchForbidden()); if (!(event.deltaX() || event.deltaY())) return; EventDispatcher dispatcher(node); RefPtr<WheelEvent> wheelEvent = WheelEvent::create(event.wheelTicksX(), event.wheelTicksY(), event.deltaX(), event.deltaY(), granularity(event), node->document()->defaultView(), event.globalX(), event.globalY(), event.x(), event.y(), event.ctrlKey(), event.altKey(), event.shiftKey(), event.metaKey()); if (!dispatcher.dispatchEvent(wheelEvent) || wheelEvent->defaultHandled()) event.accept(); }
void EventTargetNode::dispatchWheelEvent(PlatformWheelEvent& e) { ASSERT(!eventDispatchForbidden()); if (e.deltaX() == 0 && e.deltaY() == 0) return; FrameView* view = document()->view(); if (!view) return; IntPoint pos = view->windowToContents(e.pos()); RefPtr<WheelEvent> we = WheelEvent::create(e.deltaX(), e.deltaY(), document()->defaultView(), e.globalX(), e.globalY(), pos.x(), pos.y(), e.ctrlKey(), e.altKey(), e.shiftKey(), e.metaKey()); ExceptionCode ec = 0; if (!dispatchEvent(we.release(), ec, true)) e.accept(); }
void EventTargetNode::dispatchWheelEvent(PlatformWheelEvent& e) { assert(!eventDispatchForbidden()); if (e.delta() == 0) return; FrameView* view = document()->view(); if (!view) return; IntPoint pos = view->viewportToContents(e.pos()); RefPtr<WheelEvent> we = new WheelEvent(e.isHorizontal(), e.delta(), document()->defaultView(), e.globalX(), e.globalY(), pos.x(), pos.y(), e.ctrlKey(), e.altKey(), e.shiftKey(), e.metaKey()); ExceptionCode ec = 0; if (!dispatchEvent(we, ec, true)) e.accept(); }