summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/platforms/eglfs/qeglfsdeviceintegration.cpp9
-rw-r--r--src/plugins/platforms/eglfs/qeglfsintegration.cpp5
-rw-r--r--src/plugins/platforms/eglfs/qeglfsintegration.h1
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;