summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/client/qwaylanddisplay.cpp4
-rw-r--r--src/client/qwaylandintegration.cpp3
-rw-r--r--src/client/qwaylandintegration_p.h2
3 files changed, 5 insertions, 4 deletions
diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp
index a037bb962..264528f6c 100644
--- a/src/client/qwaylanddisplay.cpp
+++ b/src/client/qwaylanddisplay.cpp
@@ -215,9 +215,11 @@ void QWaylandDisplay::registry_global(uint32_t id, const QString &interface, uin
struct ::wl_registry *registry = object();
if (interface == QStringLiteral("wl_output")) {
- mScreens.append(new QWaylandScreen(this, id));
+ QWaylandScreen *screen = new QWaylandScreen(this, id);
+ mScreens.append(screen);
// We need to get the output events before creating surfaces
forceRoundTrip();
+ mWaylandIntegration->screenAdded(screen);
} else if (interface == QStringLiteral("wl_compositor")) {
mCompositor.init(registry, id, 3);
} else if (interface == QStringLiteral("wl_shm")) {
diff --git a/src/client/qwaylandintegration.cpp b/src/client/qwaylandintegration.cpp
index 224466cc4..d9bf82e4f 100644
--- a/src/client/qwaylandintegration.cpp
+++ b/src/client/qwaylandintegration.cpp
@@ -128,9 +128,6 @@ QWaylandIntegration::QWaylandIntegration()
mClipboard = new QWaylandClipboard(mDisplay);
mDrag = new QWaylandDrag(mDisplay);
- foreach (QWaylandScreen *screen, mDisplay->screens())
- screenAdded(screen);
-
mInputContext.reset(new QWaylandInputContext(mDisplay));
}
diff --git a/src/client/qwaylandintegration_p.h b/src/client/qwaylandintegration_p.h
index 025e0b4df..bbe982853 100644
--- a/src/client/qwaylandintegration_p.h
+++ b/src/client/qwaylandintegration_p.h
@@ -110,6 +110,8 @@ private:
bool mClientBufferIntegrationInitialized;
bool mServerBufferIntegrationInitialized;
bool mShellIntegrationInitialized;
+
+ friend class QWaylandDisplay;
};
QT_END_NAMESPACE