Scrolling working!

This commit is contained in:
Ada 2025-05-25 11:14:44 +10:00
parent dcd0334603
commit eb40056231
2 changed files with 9 additions and 8 deletions

View file

@ -441,12 +441,12 @@ void WebEntityRenderer::handlePointerEvent(const PointerEvent& event) {
} }
void WebEntityRenderer::handlePointerEventAsTouch(const PointerEvent& event) { void WebEntityRenderer::handlePointerEventAsTouch(const PointerEvent& event) {
if (event.getType() == PointerEvent::Scroll) {
qInfo() << "RenderableWebEntityItem::handlePointerEventAsTouch: PointerEvent::Scroll" << QPointF(event.getScroll().x, event.getScroll().y);
}
PointerEvent webEvent = event; PointerEvent webEvent = event;
webEvent.setPos2D(event.getPos2D() * (METERS_TO_INCHES * _dpi)); webEvent.setPos2D(event.getPos2D() * (METERS_TO_INCHES * _dpi));
_webSurface->handlePointerEvent(webEvent, _touchDevice); _webSurface->handlePointerEvent(webEvent, _touchDevice);
if (event.getType() == PointerEvent::Scroll) {
qInfo() << "RenderableWebEntityItem::handlePointerEventAsTouch: PointerEvent::Scroll";
}
} }
void WebEntityRenderer::handlePointerEventAsMouse(const PointerEvent& event) { void WebEntityRenderer::handlePointerEventAsMouse(const PointerEvent& event) {
@ -482,10 +482,10 @@ void WebEntityRenderer::handlePointerEventAsMouse(const PointerEvent& event) {
} }
if (type == QEvent::Wheel) { if (type == QEvent::Wheel) {
const auto& scroll = event.getScroll(); const auto& scroll = event.getScroll() * -24.0f;
QWheelEvent wheelEvent(windowPoint, windowPoint, QPoint(scroll.x, scroll.y), QPoint(), buttons, event.getKeyboardModifiers(), Qt::ScrollPhase::NoScrollPhase, false); QWheelEvent wheelEvent(windowPoint, windowPoint, QPoint(), QPoint(scroll.x, scroll.y), buttons, event.getKeyboardModifiers(), Qt::ScrollPhase::NoScrollPhase, false);
QCoreApplication::sendEvent(_webSurface->getWindow(), &wheelEvent); QCoreApplication::sendEvent(_webSurface->getWindow(), &wheelEvent);
qInfo() << "RenderableWebEntityItem::handlePointerEventAsMouse: QEvent::Wheel"; qInfo() << "RenderableWebEntityItem::handlePointerEventAsMouse: QEvent::Wheel" << QPoint(scroll.x, scroll.y) << buttons;
} else { } else {
QMouseEvent mouseEvent(type, windowPoint, windowPoint, windowPoint, button, buttons, event.getKeyboardModifiers()); QMouseEvent mouseEvent(type, windowPoint, windowPoint, windowPoint, button, buttons, event.getKeyboardModifiers());
QCoreApplication::sendEvent(_webSurface->getWindow(), &mouseEvent); QCoreApplication::sendEvent(_webSurface->getWindow(), &mouseEvent);

View file

@ -584,11 +584,12 @@ bool OffscreenQmlSurface::handlePointerEvent(const PointerEvent& event, class QT
} }
if (event.getType() == PointerEvent::Scroll) { if (event.getType() == PointerEvent::Scroll) {
auto scroll = event.getScroll(); auto scroll = event.getScroll() * -24.0f;
QWheelEvent wheelEvent(windowPoint, windowPoint, QPoint(scroll.x, scroll.y), QPoint(), buttons, event.getKeyboardModifiers(), Qt::ScrollPhase::ScrollUpdate, false); QWheelEvent wheelEvent(windowPoint, windowPoint, QPoint(), QPoint(scroll.x, scroll.y), buttons, event.getKeyboardModifiers(), Qt::ScrollPhase::NoScrollPhase, false);
if (QCoreApplication::sendEvent(getWindow(), &wheelEvent)) { if (QCoreApplication::sendEvent(getWindow(), &wheelEvent)) {
eventSent = true; eventSent = true;
eventsAccepted &= wheelEvent.isAccepted(); eventsAccepted &= wheelEvent.isAccepted();
qInfo() << "OffscreenQmlSurface::handlePointerEvent: PointerEvent::Scroll" << QPointF(scroll.x, scroll.y);
} }
} }