diff --git a/src/plugins/platforms/wasm/qwasmeventtranslator.cpp b/src/plugins/platforms/wasm/qwasmeventtranslator.cpp index 5b1201b5e5..a3e02d9d4a 100644 --- a/src/plugins/platforms/wasm/qwasmeventtranslator.cpp +++ b/src/plugins/platforms/wasm/qwasmeventtranslator.cpp @@ -370,9 +370,9 @@ Qt::MouseButton QWasmEventTranslator::translateMouseButton(unsigned short button int QWasmEventTranslator::mouse_cb(int eventType, const EmscriptenMouseEvent *mouseEvent, void *userData) { QWasmEventTranslator *translator = (QWasmEventTranslator*)userData; - translator->processMouse(eventType,mouseEvent); + bool accepted = translator->processMouse(eventType,mouseEvent); QWasmEventDispatcher::maintainTimers(); - return 0; + return accepted; } void resizeWindow(QWindow *window, QWasmWindow::ResizeMode mode, @@ -431,7 +431,7 @@ void resizeWindow(QWindow *window, QWasmWindow::ResizeMode mode, window->setGeometry(x1, y1, w, h); } -void QWasmEventTranslator::processMouse(int eventType, const EmscriptenMouseEvent *mouseEvent) +bool QWasmEventTranslator::processMouse(int eventType, const EmscriptenMouseEvent *mouseEvent) { QPoint targetPoint(mouseEvent->targetX, mouseEvent->targetY); QPoint globalPoint = screen()->geometry().topLeft() + targetPoint; @@ -533,10 +533,12 @@ void QWasmEventTranslator::processMouse(int eventType, const EmscriptenMouseEven lastWindow = nullptr; interior = true; } + bool accepted = true; if (window2 && interior) { - QWindowSystemInterface::handleMouseEvent( + accepted = QWindowSystemInterface::handleMouseEvent( window2, getTimestamp(), localPoint, globalPoint, pressedButtons, button, buttonEventType, modifiers); } + return accepted; } int QWasmEventTranslator::focus_cb(int /*eventType*/, const EmscriptenFocusEvent */*focusEvent*/, void */*userData*/) @@ -582,11 +584,10 @@ int QWasmEventTranslator::wheel_cb(int eventType, const EmscriptenWheelEvent *wh if (wheelEvent->deltaY != 0) pixelDelta.setY(wheelEvent->deltaY * scrollFactor); if (wheelEvent->deltaX != 0) pixelDelta.setX(wheelEvent->deltaX * scrollFactor); - QWindowSystemInterface::handleWheelEvent(window2, getTimestamp(), localPoint, + bool accepted = QWindowSystemInterface::handleWheelEvent(window2, getTimestamp(), localPoint, globalPoint, QPoint(), pixelDelta, modifiers); QWasmEventDispatcher::maintainTimers(); - - return 1; + return static_cast(accepted); } int QWasmEventTranslator::touchCallback(int eventType, const EmscriptenTouchEvent *touchEvent, void *userData) @@ -663,14 +664,15 @@ int QWasmEventTranslator::handleTouch(int eventType, const EmscriptenTouchEvent QFlags keyModifier = translatKeyModifier(touchEvent); - QWindowSystemInterface::handleTouchEvent( + bool accepted = QWindowSystemInterface::handleTouchEvent( window2, getTimestamp(), touchDevice, touchPointList, keyModifier); if (eventType == EMSCRIPTEN_EVENT_TOUCHCANCEL) - QWindowSystemInterface::handleTouchCancelEvent(window2, getTimestamp(), touchDevice, keyModifier); + accepted = QWindowSystemInterface::handleTouchCancelEvent(window2, getTimestamp(), touchDevice, keyModifier); QWasmEventDispatcher::maintainTimers(); - return 1; + + return static_cast(accepted); } quint64 QWasmEventTranslator::getTimestamp() diff --git a/src/plugins/platforms/wasm/qwasmeventtranslator.h b/src/plugins/platforms/wasm/qwasmeventtranslator.h index ab06bb8cf0..3e772583af 100644 --- a/src/plugins/platforms/wasm/qwasmeventtranslator.h +++ b/src/plugins/platforms/wasm/qwasmeventtranslator.h @@ -74,7 +74,7 @@ private: QFlags translateMouseEventModifier(const EmscriptenMouseEvent *mouseEvent); Qt::MouseButton translateMouseButton(unsigned short button); - void processMouse(int eventType, const EmscriptenMouseEvent *mouseEvent); + bool processMouse(int eventType, const EmscriptenMouseEvent *mouseEvent); bool processKeyboard(int eventType, const EmscriptenKeyboardEvent *keyEvent); Qt::Key translateDeadKey(Qt::Key deadKey, Qt::Key accentBaseKey);