diff options
-rw-r--r-- | src/plugins/platforms/mirclient/qmirclientintegration.cpp | 15 | ||||
-rw-r--r-- | src/plugins/platforms/mirclient/qmirclientintegration.h | 3 |
2 files changed, 11 insertions, 7 deletions
diff --git a/src/plugins/platforms/mirclient/qmirclientintegration.cpp b/src/plugins/platforms/mirclient/qmirclientintegration.cpp index 592c2d803b..a4f9e46fef 100644 --- a/src/plugins/platforms/mirclient/qmirclientintegration.cpp +++ b/src/plugins/platforms/mirclient/qmirclientintegration.cpp @@ -110,8 +110,7 @@ QMirClientClientIntegration::QMirClientClientIntegration() mNativeInterface->setMirConnection(u_application_instance_get_mir_connection(mInstance)); // Create default screen. - mScreen = new QMirClientScreen(u_application_instance_get_mir_connection(mInstance)); - screenAdded(mScreen); + screenAdded(new QMirClientScreen(u_application_instance_get_mir_connection(mInstance))); // Initialize input. if (qEnvironmentVariableIsEmpty("QTUBUNTU_NO_INPUT")) { @@ -140,7 +139,8 @@ QMirClientClientIntegration::~QMirClientClientIntegration() { delete mInput; delete mInputContext; - delete mScreen; + for (QScreen *screen : QGuiApplication::screens()) + QPlatformIntegration::destroyScreen(screen->handle()); delete mServices; } @@ -185,8 +185,13 @@ QPlatformWindow* QMirClientClientIntegration::createPlatformWindow(QWindow* wind QPlatformWindow* QMirClientClientIntegration::createPlatformWindow(QWindow* window) { - return new QMirClientWindow(window, mClipboard, static_cast<QMirClientScreen*>(mScreen), - mInput, u_application_instance_get_mir_connection(mInstance)); + return new QMirClientWindow(window, mClipboard, screen(), + mInput, u_application_instance_get_mir_connection(mInstance)); +} + +QMirClientScreen *QMirClientClientIntegration::screen() const +{ + return static_cast<QMirClientScreen *>(QGuiApplication::primaryScreen()->handle()); } bool QMirClientClientIntegration::hasCapability(QPlatformIntegration::Capability cap) const diff --git a/src/plugins/platforms/mirclient/qmirclientintegration.h b/src/plugins/platforms/mirclient/qmirclientintegration.h index e41cbe2cee..443f61f363 100644 --- a/src/plugins/platforms/mirclient/qmirclientintegration.h +++ b/src/plugins/platforms/mirclient/qmirclientintegration.h @@ -74,7 +74,7 @@ public: QPlatformOpenGLContext* createPlatformOpenGLContext(QOpenGLContext* context); QPlatformWindow* createPlatformWindow(QWindow* window); - QMirClientScreen* screen() const { return mScreen; } + QMirClientScreen* screen() const; private: void setupOptions(); @@ -85,7 +85,6 @@ private: QMirClientPlatformServices* mServices; - QMirClientScreen* mScreen; QMirClientInput* mInput; QPlatformInputContext* mInputContext; QSharedPointer<QMirClientClipboard> mClipboard; |