summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@theqtcompany.com>2015-01-09 12:59:04 +0100
committerLaszlo Agocs <laszlo.agocs@theqtcompany.com>2015-01-09 14:29:30 +0100
commitf496c7186ca358f549e3aa32ac862a6f66011db6 (patch)
tree6be24cb3fa802c2b69049ebed406d0884abc85c6
parent8836a4d5f0fbbbf18565e8dc64ab89e95a39720f (diff)
eglfs: Update screen destruction to follow the new approach
Call destroyScreen(), like other platform plugins do since 9b4fbe85d2e00c625c3d4abd975faf555000f685. Change-Id: Idbddb026d7a964f15c00acfacf70064405dc3f16 Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
-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;