diff options
author | Morten Sørvig <morten.sorvig@qt.io> | 2021-05-26 12:25:09 +0200 |
---|---|---|
committer | Morten Johan Sørvig <morten.sorvig@qt.io> | 2021-06-22 11:11:20 +0000 |
commit | 586027f7fd1e148ed95af8da793e42ceb405770a (patch) | |
tree | 81c4e49e81bb08439f5362573b76565bb6855ae0 /src/plugins/platforms/wasm/qwasmintegration.cpp | |
parent | 0ca0f3e7febabba42d4494dc96bc3b5e62841dec (diff) | |
download | qtbase-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.cpp | 10 |
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; |