From f496c7186ca358f549e3aa32ac862a6f66011db6 Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Fri, 9 Jan 2015 12:59:04 +0100 Subject: 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 --- src/plugins/platforms/eglfs/qeglfsdeviceintegration.cpp | 9 +++++++-- src/plugins/platforms/eglfs/qeglfsintegration.cpp | 5 +++++ 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 #include #include +#include #include #include #include @@ -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( + 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; -- cgit v1.2.3