diff --git a/src/plugins/platforms/wasm/qwasmcompositor.cpp b/src/plugins/platforms/wasm/qwasmcompositor.cpp index a892f7077b7..8ba67040a5b 100644 --- a/src/plugins/platforms/wasm/qwasmcompositor.cpp +++ b/src/plugins/platforms/wasm/qwasmcompositor.cpp @@ -606,6 +606,8 @@ bool QWasmCompositor::processPointer(const PointerEvent& event) switch (event.type) { case EventType::PointerDown: { + screen()->canvas().call("setPointerCapture", event.pointerId); + if (targetWindow) targetWindow->requestActivate(); @@ -619,6 +621,8 @@ bool QWasmCompositor::processPointer(const PointerEvent& event) } case EventType::PointerUp: { + screen()->canvas().call("releasePointerCapture", event.pointerId); + m_windowManipulation.onPointerUp(event); if (m_pressedWindow) { @@ -779,8 +783,6 @@ void QWasmCompositor::WindowManipulation::onPointerDown( .window = windowAtPoint, .operationSpecific = std::move(*operationSpecific), }); - - m_screen->canvas().call("setPointerCapture", event.pointerId); } void QWasmCompositor::WindowManipulation::onPointerMove( @@ -818,7 +820,6 @@ void QWasmCompositor::WindowManipulation::onPointerUp(const PointerEvent& event) return; m_state.reset(); - m_screen->canvas().call("releasePointerCapture", event.pointerId); } bool QWasmCompositor::processKeyboard(int eventType, const EmscriptenKeyboardEvent *emKeyEvent)