summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/plugins/platforms/wasm/qwasmintegration.cpp8
-rw-r--r--src/plugins/platforms/wasm/qwasmscreen.cpp3
-rw-r--r--src/plugins/platforms/wasm/qwasmscreen.h2
3 files changed, 6 insertions, 7 deletions
diff --git a/src/plugins/platforms/wasm/qwasmintegration.cpp b/src/plugins/platforms/wasm/qwasmintegration.cpp
index c6bb7f98c98..b7e1a0ad28a 100644
--- a/src/plugins/platforms/wasm/qwasmintegration.cpp
+++ b/src/plugins/platforms/wasm/qwasmintegration.cpp
@@ -196,7 +196,8 @@ QWasmIntegration::~QWasmIntegration()
delete m_drag;
for (const auto &elementAndScreen : m_screens)
- QWindowSystemInterface::handleScreenRemoved(elementAndScreen.second);
+ elementAndScreen.second->deleteScreen();
+
m_screens.clear();
s_instance = nullptr;
@@ -338,10 +339,7 @@ void QWasmIntegration::removeScreen(const emscripten::val &element)
qWarning() << "Attempting to remove non-existing screen for element" << QWasmString::toQString(element["id"]);;
return;
}
- QWasmScreen *exScreen = it->second;
- m_screens.erase(it);
- exScreen->destroy(); // clean up before deleting the screen
- QWindowSystemInterface::handleScreenRemoved(exScreen);
+ it->second->deleteScreen();
}
void QWasmIntegration::resizeScreen(const emscripten::val &element)
diff --git a/src/plugins/platforms/wasm/qwasmscreen.cpp b/src/plugins/platforms/wasm/qwasmscreen.cpp
index 357ee327fed..03c672b9ba2 100644
--- a/src/plugins/platforms/wasm/qwasmscreen.cpp
+++ b/src/plugins/platforms/wasm/qwasmscreen.cpp
@@ -131,9 +131,10 @@ QWasmScreen::~QWasmScreen()
m_canvas.set(m_canvasResizeObserverCallbackContextPropertyName, emscripten::val(intptr_t(0)));
}
-void QWasmScreen::destroy()
+void QWasmScreen::deleteScreen()
{
m_compositor->destroy();
+ QWindowSystemInterface::handleScreenRemoved(this);
}
QWasmScreen *QWasmScreen::get(QPlatformScreen *screen)
diff --git a/src/plugins/platforms/wasm/qwasmscreen.h b/src/plugins/platforms/wasm/qwasmscreen.h
index 07f52f9fdcf..65efefdeefd 100644
--- a/src/plugins/platforms/wasm/qwasmscreen.h
+++ b/src/plugins/platforms/wasm/qwasmscreen.h
@@ -55,7 +55,7 @@ class QWasmScreen : public QObject, public QPlatformScreen
public:
QWasmScreen(const emscripten::val &containerOrCanvas);
~QWasmScreen();
- void destroy();
+ void deleteScreen();
static QWasmScreen *get(QPlatformScreen *screen);
static QWasmScreen *get(QScreen *screen);