summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/mirclient
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/mirclient')
-rw-r--r--src/plugins/platforms/mirclient/qmirclientintegration.cpp15
-rw-r--r--src/plugins/platforms/mirclient/qmirclientintegration.h3
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;