From aed0f34786100c9e113d0bb31779b3a6a0d5ba33 Mon Sep 17 00:00:00 2001 From: Lorn Potter Date: Fri, 21 Aug 2020 12:53:55 +1000 Subject: wasm: deregister event handlers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pick-to: 5.15 Change-Id: I453b87497c7ed93b92bf9f4c59ab1c8bd1d7712e Reviewed-by: Morten Johan Sørvig --- src/plugins/platforms/wasm/qwasmeventtranslator.cpp | 21 +++++++++++++++++++++ src/plugins/platforms/wasm/qwasmeventtranslator.h | 1 + 2 files changed, 22 insertions(+) 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); -- cgit v1.2.3