diff options
author | Laszlo Agocs <laszlo.agocs@qt.io> | 2016-08-08 10:42:28 +0200 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@qt.io> | 2016-08-10 09:04:38 +0000 |
commit | af7b4e3f5564f8a47c4ca14c543d74c5684238ee (patch) | |
tree | db4367c6407ca688e8d95c2f384b3367a5297279 /src/plugins/platforms | |
parent | c8afc67875a3db232f98735602af054bdf2ef531 (diff) |
eglfs: Enable virtual desktop with EGLDevice as well
Not clear why separateScreen was overridden to true. The GBM-based backend
goes with the default of false, leading to setting up the screens as virtual
siblings and reporting the correct virtual desktop geometry.
The difference currently lies in the OpenGL mouse cursor, which, unlike the
GBM hardware cursor, does not yet support virtual desktops. Its behavior
is not affected of the flag however.
Task-number: QTBUG-54151
Task-number: QTBUG-55161
Task-number: QTBUG-55188
Change-Id: I888ffc43ed4add66065a2f7c606c9b3a2d56a9ab
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
Diffstat (limited to 'src/plugins/platforms')
4 files changed, 2 insertions, 8 deletions
diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.cpp index 28967d71ff..cbf7cfe7d0 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.cpp +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.cpp @@ -222,11 +222,6 @@ QEglFSWindow *QEglFSKmsEglDeviceIntegration::createWindow(QWindow *window) const return eglWindow; } -bool QEglFSKmsEglDeviceIntegration::separateScreens() const -{ - return true; -} - QEglFSKmsDevice *QEglFSKmsEglDeviceIntegration::createDevice(const QString &devicePath) { Q_UNUSED(devicePath) diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.h b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.h index f04c42267a..af6b3f81ce 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.h +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.h @@ -61,8 +61,6 @@ public: bool supportsPBuffers() const Q_DECL_OVERRIDE; QEglFSWindow *createWindow(QWindow *window) const Q_DECL_OVERRIDE; - virtual bool separateScreens() const Q_DECL_OVERRIDE; - EGLDeviceEXT eglDevice() const { return m_egl_device; } protected: diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsdevice.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsdevice.cpp index f4ffee569d..934f7802ac 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsdevice.cpp +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsdevice.cpp @@ -376,6 +376,7 @@ void QEglFSKmsDevice::createScreens() drmModeFreeResources(resources); if (!m_integration->separateScreens()) { + // set up a virtual desktop Q_FOREACH (QPlatformScreen *screen, siblings) static_cast<QEglFSKmsScreen *>(screen)->setVirtualSiblings(siblings); } diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsscreen.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsscreen.cpp index e6b256f6b2..addcb366eb 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsscreen.cpp +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsscreen.cpp @@ -81,7 +81,7 @@ QEglFSKmsScreen::QEglFSKmsScreen(QEglFSKmsIntegration *integration, , m_powerState(PowerStateOn) , m_interruptHandler(new QEglFSKmsInterruptHandler(this)) { - m_siblings << this; + m_siblings << this; // gets overridden by QEglFSKmsDevice later if !separateScreens } QEglFSKmsScreen::~QEglFSKmsScreen() |