summaryrefslogtreecommitdiff
path: root/src/client/qwaylanddisplay.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/qwaylanddisplay.cpp')
-rw-r--r--src/client/qwaylanddisplay.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp
index b7e212ab..911004f8 100644
--- a/src/client/qwaylanddisplay.cpp
+++ b/src/client/qwaylanddisplay.cpp
@@ -420,6 +420,12 @@ void QWaylandDisplay::reconnect()
qDeleteAll(mWaitingScreens);
mWaitingScreens.clear();
+ const auto screens = std::exchange(mScreens, {});
+ ensureScreen();
+ for (QWaylandScreen *screen : screens) {
+ QWindowSystemInterface::handleScreenRemoved(screen);
+ }
+
// mCompositor
mShm.reset();
mCursorThemes.clear();
@@ -449,9 +455,6 @@ void QWaylandDisplay::reconnect()
qDeleteAll(std::exchange(mInputDevices, {}));
mLastInputDevice = nullptr;
- auto screens = mScreens;
- mScreens.clear();
-
for (const RegistryGlobal &global : mGlobals) {
emit globalRemoved(global);
}