diff options
author | Morten Sørvig <[email protected]> | 2025-03-14 15:54:37 +0100 |
---|---|---|
committer | Morten Sørvig <[email protected]> | 2025-03-17 19:46:02 +0100 |
commit | 0eba6478eefcc7ef7591e75f95002a36a0685343 (patch) | |
tree | b6182115259f37fe417c9b4d66c5d78b651198ac | |
parent | 209a2145f94e99f99832c3a08cdf579d8f42ca55 (diff) |
wasm: Use the new QWasmEventHandler class
Also saves one malloc call per event handler.
Change-Id: I33a72916b101e27d2e4139ebb1dc5227b0793273
Reviewed-by: Lorn Potter <[email protected]>
-rw-r--r-- | src/plugins/platforms/wasm/qwasmwindow.cpp | 32 | ||||
-rw-r--r-- | src/plugins/platforms/wasm/qwasmwindow.h | 38 |
2 files changed, 35 insertions, 35 deletions
diff --git a/src/plugins/platforms/wasm/qwasmwindow.cpp b/src/plugins/platforms/wasm/qwasmwindow.cpp index 83a4689fc1b..16ee1c3bc53 100644 --- a/src/plugins/platforms/wasm/qwasmwindow.cpp +++ b/src/plugins/platforms/wasm/qwasmwindow.cpp @@ -121,73 +121,73 @@ QWasmWindow::QWasmWindow(QWindow *w, QWasmDeadKeySupport *deadKeySupport, void QWasmWindow::registerEventHandlers() { - m_pointerDownCallback = std::make_unique<qstdweb::EventCallback>(m_window, "pointerdown", + m_pointerDownCallback = QWasmEventHandler(m_window, "pointerdown", [this](emscripten::val event){ processPointer(PointerEvent(EventType::PointerDown, event)); } ); - m_pointerMoveCallback = std::make_unique<qstdweb::EventCallback>(m_window, "pointermove", + m_pointerMoveCallback = QWasmEventHandler(m_window, "pointermove", [this](emscripten::val event){ processPointer(PointerEvent(EventType::PointerMove, event)); } ); - m_pointerUpCallback = std::make_unique<qstdweb::EventCallback>(m_window, "pointerup", + m_pointerUpCallback = QWasmEventHandler(m_window, "pointerup", [this](emscripten::val event){ processPointer(PointerEvent(EventType::PointerUp, event)); } ); - m_pointerCancelCallback = std::make_unique<qstdweb::EventCallback>(m_window, "pointercancel", + m_pointerCancelCallback = QWasmEventHandler(m_window, "pointercancel", [this](emscripten::val event){ processPointer(PointerEvent(EventType::PointerCancel, event)); } ); - m_pointerEnterCallback = std::make_unique<qstdweb::EventCallback>(m_window, "pointerenter", + m_pointerEnterCallback = QWasmEventHandler(m_window, "pointerenter", [this](emscripten::val event) { this->handlePointerEnterLeaveEvent(PointerEvent(EventType::PointerEnter, event)); } ); - m_pointerLeaveCallback = std::make_unique<qstdweb::EventCallback>(m_window, "pointerleave", + m_pointerLeaveCallback = QWasmEventHandler(m_window, "pointerleave", [this](emscripten::val event) { this->handlePointerEnterLeaveEvent(PointerEvent(EventType::PointerLeave, event)); } ); m_window.call<void>("setAttribute", emscripten::val("draggable"), emscripten::val("true")); - m_dragStartCallback = std::make_unique<qstdweb::EventCallback>(m_window, "dragstart", + m_dragStartCallback = QWasmEventHandler(m_window, "dragstart", [this](emscripten::val event) { DragEvent dragEvent(EventType::DragStart, event, window()); QWasmDrag::instance()->onNativeDragStarted(&dragEvent); } ); - m_dragOverCallback = std::make_unique<qstdweb::EventCallback>(m_window, "dragover", + m_dragOverCallback = QWasmEventHandler(m_window, "dragover", [this](emscripten::val event) { DragEvent dragEvent(EventType::DragOver, event, window()); QWasmDrag::instance()->onNativeDragOver(&dragEvent); } ); - m_dropCallback = std::make_unique<qstdweb::EventCallback>(m_window, "drop", + m_dropCallback = QWasmEventHandler(m_window, "drop", [this](emscripten::val event) { DragEvent dragEvent(EventType::Drop, event, window()); QWasmDrag::instance()->onNativeDrop(&dragEvent); } ); - m_dragEndCallback = std::make_unique<qstdweb::EventCallback>(m_window, "dragend", + m_dragEndCallback = QWasmEventHandler(m_window, "dragend", [this](emscripten::val event) { DragEvent dragEvent(EventType::DragEnd, event, window()); QWasmDrag::instance()->onNativeDragFinished(&dragEvent); } ); - m_dragLeaveCallback = std::make_unique<qstdweb::EventCallback>(m_window, "dragleave", + m_dragLeaveCallback = QWasmEventHandler(m_window, "dragleave", [this](emscripten::val event) { DragEvent dragEvent(EventType::DragLeave, event, window()); QWasmDrag::instance()->onNativeDragLeave(&dragEvent); } ); - m_wheelEventCallback = std::make_unique<qstdweb::EventCallback>( m_window, "wheel", + m_wheelEventCallback = QWasmEventHandler(m_window, "wheel", [this](emscripten::val event) { this->handleWheelEvent(event); }); QWasmInputContext *wasmInput = QWasmIntegration::get()->wasmInputContext(); if (wasmInput) { m_keyDownCallbackForInputContext = - std::make_unique<qstdweb::EventCallback>(wasmInput->m_inputElement, "keydown", + QWasmEventHandler(wasmInput->m_inputElement, "keydown", [this](emscripten::val event) { this->handleKeyForInputContextEvent(EventType::KeyDown, event); }); m_keyUpCallbackForInputContext = - std::make_unique<qstdweb::EventCallback>(wasmInput->m_inputElement, "keyup", + QWasmEventHandler(wasmInput->m_inputElement, "keyup", [this](emscripten::val event) { this->handleKeyForInputContextEvent(EventType::KeyUp, event); }); } - m_keyDownCallback = std::make_unique<qstdweb::EventCallback>(m_window, "keydown", + m_keyDownCallback = QWasmEventHandler(m_window, "keydown", [this](emscripten::val event) { this->handleKeyEvent(KeyEvent(EventType::KeyDown, event, m_deadKeySupport)); }); - m_keyUpCallback =std::make_unique<qstdweb::EventCallback>(m_window, "keyup", + m_keyUpCallback =QWasmEventHandler(m_window, "keyup", [this](emscripten::val event) {this->handleKeyEvent(KeyEvent(EventType::KeyUp, event, m_deadKeySupport)); }); } diff --git a/src/plugins/platforms/wasm/qwasmwindow.h b/src/plugins/platforms/wasm/qwasmwindow.h index be424753d3f..8b5e6d56a71 100644 --- a/src/plugins/platforms/wasm/qwasmwindow.h +++ b/src/plugins/platforms/wasm/qwasmwindow.h @@ -151,25 +151,25 @@ private: QWasmWindowTreeNode *m_commitedParent = nullptr; - std::unique_ptr<qstdweb::EventCallback> m_keyDownCallback; - std::unique_ptr<qstdweb::EventCallback> m_keyUpCallback; - std::unique_ptr<qstdweb::EventCallback> m_keyDownCallbackForInputContext; - std::unique_ptr<qstdweb::EventCallback> m_keyUpCallbackForInputContext; - - std::unique_ptr<qstdweb::EventCallback> m_pointerDownCallback; - std::unique_ptr<qstdweb::EventCallback> m_pointerMoveCallback; - std::unique_ptr<qstdweb::EventCallback> m_pointerUpCallback; - std::unique_ptr<qstdweb::EventCallback> m_pointerCancelCallback; - std::unique_ptr<qstdweb::EventCallback> m_pointerLeaveCallback; - std::unique_ptr<qstdweb::EventCallback> m_pointerEnterCallback; - - std::unique_ptr<qstdweb::EventCallback> m_dragOverCallback; - std::unique_ptr<qstdweb::EventCallback> m_dragStartCallback; - std::unique_ptr<qstdweb::EventCallback> m_dragEndCallback; - std::unique_ptr<qstdweb::EventCallback> m_dropCallback; - std::unique_ptr<qstdweb::EventCallback> m_dragLeaveCallback; - - std::unique_ptr<qstdweb::EventCallback> m_wheelEventCallback; + QWasmEventHandler m_keyDownCallback; + QWasmEventHandler m_keyUpCallback; + QWasmEventHandler m_keyDownCallbackForInputContext; + QWasmEventHandler m_keyUpCallbackForInputContext; + + QWasmEventHandler m_pointerDownCallback; + QWasmEventHandler m_pointerMoveCallback; + QWasmEventHandler m_pointerUpCallback; + QWasmEventHandler m_pointerCancelCallback; + QWasmEventHandler m_pointerLeaveCallback; + QWasmEventHandler m_pointerEnterCallback; + + QWasmEventHandler m_dragOverCallback; + QWasmEventHandler m_dragStartCallback; + QWasmEventHandler m_dragEndCallback; + QWasmEventHandler m_dropCallback; + QWasmEventHandler m_dragLeaveCallback; + + QWasmEventHandler m_wheelEventCallback; QMap<int, QWindowSystemInterface::TouchPoint> m_pointerIdToTouchPoints; |