summaryrefslogtreecommitdiff
path: root/src/plugins/platforms/wasm/qwasmintegration.cpp
diff options
context:
space:
mode:
authorMorten Sørvig <morten.sorvig@qt.io>2021-05-26 12:25:09 +0200
committerMorten Johan Sørvig <morten.sorvig@qt.io>2021-06-22 11:11:20 +0000
commit586027f7fd1e148ed95af8da793e42ceb405770a (patch)
tree81c4e49e81bb08439f5362573b76565bb6855ae0 /src/plugins/platforms/wasm/qwasmintegration.cpp
parent0ca0f3e7febabba42d4494dc96bc3b5e62841dec (diff)
downloadqtbase-586027f7fd1e148ed95af8da793e42ceb405770a.tar.gz
wasm: remove event listeners
Remove event listeners on shutdown. For emscripten event callbacks this can be done by passing nullptr as the callback, for DOM event listeners use the “removeEventListener” API. Change-Id: I5a32a6a8feb906082db5ef3d0a0cd7ecb3b54292 Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
Diffstat (limited to 'src/plugins/platforms/wasm/qwasmintegration.cpp')
-rw-r--r--src/plugins/platforms/wasm/qwasmintegration.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/plugins/platforms/wasm/qwasmintegration.cpp b/src/plugins/platforms/wasm/qwasmintegration.cpp
index 15d396f479..2f2524737d 100644
--- a/src/plugins/platforms/wasm/qwasmintegration.cpp
+++ b/src/plugins/platforms/wasm/qwasmintegration.cpp
@@ -142,7 +142,7 @@ QWasmIntegration::QWasmIntegration()
integration->resizeAllScreens();
return 0;
};
- emscripten_set_resize_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, nullptr, 1, onWindowResize);
+ emscripten_set_resize_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, nullptr, EM_TRUE, onWindowResize);
// install visualViewport resize handler which picks up size and scale change on mobile.
emscripten::val visualViewport = emscripten::val::global("window")["visualViewport"];
@@ -154,6 +154,14 @@ QWasmIntegration::QWasmIntegration()
QWasmIntegration::~QWasmIntegration()
{
+ // Remove event listenes
+ emscripten_set_resize_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, nullptr, EM_TRUE, nullptr);
+ emscripten::val visualViewport = emscripten::val::global("window")["visualViewport"];
+ if (!visualViewport.isUndefined()) {
+ visualViewport.call<void>("removeEventListener", val("resize"),
+ val::module_property("qtResizeAllScreens"));
+ }
+
delete m_fontDb;
delete m_desktopServices;