void MiniBrowser::handleWheelEvent(const XButtonPressedEvent& event) { WKPoint contentsPoint = NIXViewUserViewportToContents(m_view, WKPointMake(event.x, event.y)); if (m_mode == MobileMode && event.state & ControlMask) { double newScale = NIXViewScale(m_view) * (event.button == 4 ? 1.1 : 0.9); scaleAtPoint(contentsPoint, newScale); return; } // Same constant we use inside WebView to calculate the ticks. See also WebCore::Scrollbar::pixelsPerLineStep(). const float pixelsPerStep = 40.0f; NIXWheelEvent nixEvent; nixEvent.type = kNIXInputEventTypeWheel; nixEvent.modifiers = convertXEventModifiersToNativeModifiers(event.state); nixEvent.timestamp = convertXEventTimeToNixTimestamp(event.time); nixEvent.x = contentsPoint.x; nixEvent.y = contentsPoint.y; nixEvent.globalX = event.x_root; nixEvent.globalY = event.y_root; nixEvent.delta = pixelsPerStep * (event.button == 4 ? 1 : -1); nixEvent.orientation = event.state & ShiftMask ? kNIXWheelEventOrientationHorizontal : kNIXWheelEventOrientationVertical; NIXViewSendWheelEvent(m_view, &nixEvent); }
void Tab::sendMouseEvent<NIXWheelEvent*>(NIXWheelEvent* event) { NIXViewSendWheelEvent(m_view, event); }