From 1bd07b029396ccfebebefe92ec5e1b6841d5760c Mon Sep 17 00:00:00 2001 From: Saytgalin Alexander Date: Wed, 1 Apr 2015 13:50:16 +0600 Subject: Always release surfaces when application is suspended or hidden. It is needed to recreate surfaces and to redraw when application is resumed because on some devices when the application is suspended Android destroys the surfaces. Change-Id: I8934e94af038b4ecf116d93aea223ad040b0bff1 Task-number: QTBUG-45019 Reviewed-by: BogDan Vatra Reviewed-by: Sergey Galin --- src/plugins/platforms/android/qandroidplatformforeignwindow.cpp | 1 - src/plugins/platforms/android/qandroidplatformopenglwindow.cpp | 2 +- src/plugins/platforms/android/qandroidplatformscreen.cpp | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) (limited to 'src/plugins/platforms/android') diff --git a/src/plugins/platforms/android/qandroidplatformforeignwindow.cpp b/src/plugins/platforms/android/qandroidplatformforeignwindow.cpp index 2d6585b891..ec80bf0f8c 100644 --- a/src/plugins/platforms/android/qandroidplatformforeignwindow.cpp +++ b/src/plugins/platforms/android/qandroidplatformforeignwindow.cpp @@ -106,7 +106,6 @@ void QAndroidPlatformForeignWindow::setVisible(bool visible) void QAndroidPlatformForeignWindow::applicationStateChanged(Qt::ApplicationState state) { if (state <= Qt::ApplicationHidden - && QtAndroid::blockEventLoopsWhenSuspended() && m_surfaceId != -1) { QtAndroid::destroySurface(m_surfaceId); m_surfaceId = -1; diff --git a/src/plugins/platforms/android/qandroidplatformopenglwindow.cpp b/src/plugins/platforms/android/qandroidplatformopenglwindow.cpp index 02ce082a65..57d3bfaf22 100644 --- a/src/plugins/platforms/android/qandroidplatformopenglwindow.cpp +++ b/src/plugins/platforms/android/qandroidplatformopenglwindow.cpp @@ -156,7 +156,7 @@ bool QAndroidPlatformOpenGLWindow::checkNativeSurface(EGLConfig config) void QAndroidPlatformOpenGLWindow::applicationStateChanged(Qt::ApplicationState state) { QAndroidPlatformWindow::applicationStateChanged(state); - if (state <= Qt::ApplicationHidden && QtAndroid::blockEventLoopsWhenSuspended()) { + if (state <= Qt::ApplicationHidden) { lockSurface(); if (m_nativeSurfaceId != -1) { QtAndroid::destroySurface(m_nativeSurfaceId); diff --git a/src/plugins/platforms/android/qandroidplatformscreen.cpp b/src/plugins/platforms/android/qandroidplatformscreen.cpp index dd9140d498..7a509e4d61 100644 --- a/src/plugins/platforms/android/qandroidplatformscreen.cpp +++ b/src/plugins/platforms/android/qandroidplatformscreen.cpp @@ -256,7 +256,7 @@ void QAndroidPlatformScreen::applicationStateChanged(Qt::ApplicationState state) foreach (QAndroidPlatformWindow *w, m_windowStack) w->applicationStateChanged(state); - if (state <= Qt::ApplicationHidden && QtAndroid::blockEventLoopsWhenSuspended()) { + if (state <= Qt::ApplicationHidden) { lockSurface(); QtAndroid::destroySurface(m_id); m_id = -1; -- cgit v1.2.3