diff options
-rw-r--r-- | src/plugins/platforms/eglfs/qeglfsdeviceintegration.cpp | 9 | ||||
-rw-r--r-- | src/plugins/platforms/eglfs/qeglfsintegration.cpp | 5 | ||||
-rw-r--r-- | src/plugins/platforms/eglfs/qeglfsintegration.h | 1 |
3 files changed, 13 insertions, 2 deletions
diff --git a/src/plugins/platforms/eglfs/qeglfsdeviceintegration.cpp b/src/plugins/platforms/eglfs/qeglfsdeviceintegration.cpp index a2e1ac3832..69a5f67ea9 100644 --- a/src/plugins/platforms/eglfs/qeglfsdeviceintegration.cpp +++ b/src/plugins/platforms/eglfs/qeglfsdeviceintegration.cpp @@ -40,9 +40,11 @@ ****************************************************************************/ #include "qeglfsdeviceintegration.h" +#include "qeglfsintegration.h" #include <QtPlatformSupport/private/qeglconvenience_p.h> #include <QtPlatformSupport/private/qeglplatformcursor_p.h> #include <QGuiApplication> +#include <private/qguiapplication_p.h> #include <QScreen> #include <QDir> #include <QRegularExpression> @@ -185,8 +187,11 @@ void QEGLDeviceIntegration::screenInit() void QEGLDeviceIntegration::screenDestroy() { - while (!qApp->screens().isEmpty()) - delete qApp->screens().last()->handle(); + QGuiApplication *app = qGuiApp; + QEglFSIntegration *platformIntegration = static_cast<QEglFSIntegration *>( + QGuiApplicationPrivate::platformIntegration()); + while (!app->screens().isEmpty()) + platformIntegration->removeScreen(app->screens().last()->handle()); } QSizeF QEGLDeviceIntegration::physicalScreenSize() const diff --git a/src/plugins/platforms/eglfs/qeglfsintegration.cpp b/src/plugins/platforms/eglfs/qeglfsintegration.cpp index 8cb23f2c09..80a029c27f 100644 --- a/src/plugins/platforms/eglfs/qeglfsintegration.cpp +++ b/src/plugins/platforms/eglfs/qeglfsintegration.cpp @@ -82,6 +82,11 @@ void QEglFSIntegration::addScreen(QPlatformScreen *screen) screenAdded(screen); } +void QEglFSIntegration::removeScreen(QPlatformScreen *screen) +{ + destroyScreen(screen); +} + void QEglFSIntegration::initialize() { qt_egl_device_integration()->platformInit(); diff --git a/src/plugins/platforms/eglfs/qeglfsintegration.h b/src/plugins/platforms/eglfs/qeglfsintegration.h index b75dc240bb..2074d80e56 100644 --- a/src/plugins/platforms/eglfs/qeglfsintegration.h +++ b/src/plugins/platforms/eglfs/qeglfsintegration.h @@ -47,6 +47,7 @@ public: QEglFSIntegration(); void addScreen(QPlatformScreen *screen); + void removeScreen(QPlatformScreen *screen); void initialize() Q_DECL_OVERRIDE; void destroy() Q_DECL_OVERRIDE; |