diff options
-rw-r--r-- | src/client/qwaylanddisplay.cpp | 4 | ||||
-rw-r--r-- | src/client/qwaylandintegration.cpp | 3 | ||||
-rw-r--r-- | src/client/qwaylandintegration_p.h | 2 |
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 |