Advertise new screens created after startup

Change-Id: I995f49e52ec888830b478f1e1f9cc82132776725
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
This commit is contained in:
Giulio Camuffo 2014-09-06 17:15:00 +03:00
parent 4ca2fc4d1b
commit 1bb22c40a3
3 changed files with 5 additions and 4 deletions

View File

@ -215,9 +215,11 @@ void QWaylandDisplay::registry_global(uint32_t id, const QString &interface, uin
struct ::wl_registry *registry = object(); struct ::wl_registry *registry = object();
if (interface == QStringLiteral("wl_output")) { 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 // We need to get the output events before creating surfaces
forceRoundTrip(); forceRoundTrip();
mWaylandIntegration->screenAdded(screen);
} else if (interface == QStringLiteral("wl_compositor")) { } else if (interface == QStringLiteral("wl_compositor")) {
mCompositor.init(registry, id, 3); mCompositor.init(registry, id, 3);
} else if (interface == QStringLiteral("wl_shm")) { } else if (interface == QStringLiteral("wl_shm")) {

View File

@ -128,9 +128,6 @@ QWaylandIntegration::QWaylandIntegration()
mClipboard = new QWaylandClipboard(mDisplay); mClipboard = new QWaylandClipboard(mDisplay);
mDrag = new QWaylandDrag(mDisplay); mDrag = new QWaylandDrag(mDisplay);
foreach (QWaylandScreen *screen, mDisplay->screens())
screenAdded(screen);
mInputContext.reset(new QWaylandInputContext(mDisplay)); mInputContext.reset(new QWaylandInputContext(mDisplay));
} }

View File

@ -110,6 +110,8 @@ private:
bool mClientBufferIntegrationInitialized; bool mClientBufferIntegrationInitialized;
bool mServerBufferIntegrationInitialized; bool mServerBufferIntegrationInitialized;
bool mShellIntegrationInitialized; bool mShellIntegrationInitialized;
friend class QWaylandDisplay;
}; };
QT_END_NAMESPACE QT_END_NAMESPACE