diff options
author | Saytgalin Alexander <a.saytgalin@2gis.ru> | 2015-04-01 13:50:16 +0600 |
---|---|---|
committer | BogDan Vatra <bogdan@kde.org> | 2015-04-04 09:12:03 +0000 |
commit | 1bd07b029396ccfebebefe92ec5e1b6841d5760c (patch) | |
tree | f17bf7739d70efd5a3342e80016ac5f6d18416a8 /src/plugins | |
parent | d3277bdf02b701f78d21a5495a55fcaac08caf3d (diff) |
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 <bogdan@kde.org>
Reviewed-by: Sergey Galin <s.galin@2gis.ru>
Diffstat (limited to 'src/plugins')
3 files changed, 2 insertions, 3 deletions
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; |