diff options
Diffstat (limited to 'src/plugins/platforms/wasm')
-rw-r--r-- | src/plugins/platforms/wasm/qwasmeventtranslator.cpp | 21 | ||||
-rw-r--r-- | src/plugins/platforms/wasm/qwasmeventtranslator.h | 1 |
2 files changed, 22 insertions, 0 deletions
diff --git a/src/plugins/platforms/wasm/qwasmeventtranslator.cpp b/src/plugins/platforms/wasm/qwasmeventtranslator.cpp index 8c0d2e21e0..82dd00bb65 100644 --- a/src/plugins/platforms/wasm/qwasmeventtranslator.cpp +++ b/src/plugins/platforms/wasm/qwasmeventtranslator.cpp @@ -337,6 +337,27 @@ QWasmEventTranslator::QWasmEventTranslator(QWasmScreen *screen) initEventHandlers(); } +QWasmEventTranslator::~QWasmEventTranslator() +{ + // deregister event handlers + QByteArray canvasSelector = "#" + screen()->canvasId().toUtf8(); + emscripten_set_keydown_callback(canvasSelector.constData(), 0, 0, NULL); + emscripten_set_keyup_callback(canvasSelector.constData(), 0, 0, NULL); + + emscripten_set_mousedown_callback(canvasSelector.constData(), 0, 0, NULL); + emscripten_set_mouseup_callback(canvasSelector.constData(), 0, 0, NULL); + emscripten_set_mousemove_callback(canvasSelector.constData(), 0, 0, NULL); + + emscripten_set_focus_callback(canvasSelector.constData(), 0, 0, NULL); + + emscripten_set_wheel_callback(canvasSelector.constData(), 0, 0, NULL); + + emscripten_set_touchstart_callback(canvasSelector.constData(), 0, 0, NULL); + emscripten_set_touchend_callback(canvasSelector.constData(), 0, 0, NULL); + emscripten_set_touchmove_callback(canvasSelector.constData(), 0, 0, NULL); + emscripten_set_touchcancel_callback(canvasSelector.constData(), 0, 0, NULL); +} + void QWasmEventTranslator::initEventHandlers() { QByteArray canvasSelector = "#" + screen()->canvasId().toUtf8(); diff --git a/src/plugins/platforms/wasm/qwasmeventtranslator.h b/src/plugins/platforms/wasm/qwasmeventtranslator.h index f6c95770e9..b02685bedd 100644 --- a/src/plugins/platforms/wasm/qwasmeventtranslator.h +++ b/src/plugins/platforms/wasm/qwasmeventtranslator.h @@ -49,6 +49,7 @@ class QWasmEventTranslator : public QObject public: explicit QWasmEventTranslator(QWasmScreen *screen); + ~QWasmEventTranslator(); static int keyboard_cb(int eventType, const EmscriptenKeyboardEvent *keyEvent, void *userData); static int mouse_cb(int eventType, const EmscriptenMouseEvent *mouseEvent, void *userData); |