summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/android/qandroidplatformscreen.cpp
diff options
context:
space:
mode:
authorBogDan Vatra <bogdan@kde.org>2014-03-22 08:22:25 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-03-27 17:51:21 +0100
commit18d031fb1896001a9edbd42edfa8b2b7a6ba9825 (patch)
treedb3bfd49953dfdffa6382213eeaa0efaf9ea809e /src/plugins/platforms/android/qandroidplatformscreen.cpp
parentbd9f490d4552fa4d41c308bf3ee285d26d2019b6 (diff)
Don't create screen surface if there are no raster windows.
Change-Id: Idaf5df814bb087707654d7ad7046ba8799f99c0a Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: BogDan Vatra <bogdan@kde.org>
Diffstat (limited to 'src/plugins/platforms/android/qandroidplatformscreen.cpp')
-rw-r--r--src/plugins/platforms/android/qandroidplatformscreen.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/plugins/platforms/android/qandroidplatformscreen.cpp b/src/plugins/platforms/android/qandroidplatformscreen.cpp
index dbf317696f..678f4e6b5a 100644
--- a/src/plugins/platforms/android/qandroidplatformscreen.cpp
+++ b/src/plugins/platforms/android/qandroidplatformscreen.cpp
@@ -133,8 +133,10 @@ void QAndroidPlatformScreen::addWindow(QAndroidPlatformWindow *window)
return;
m_windowStack.prepend(window);
- if (window->isRaster())
+ if (window->isRaster()) {
+ m_rasterSurfaces.ref();
setDirty(window->geometry());
+ }
QWindow *w = topWindow();
QWindowSystemInterface::handleWindowActivated(w);
@@ -148,8 +150,10 @@ void QAndroidPlatformScreen::removeWindow(QAndroidPlatformWindow *window)
m_windowStack.removeOne(window);
if (window->isRaster()) {
+ m_rasterSurfaces.deref();
setDirty(window->geometry());
}
+
QWindow *w = topWindow();
QWindowSystemInterface::handleWindowActivated(w);
topWindowChanged(w);
@@ -238,6 +242,11 @@ void QAndroidPlatformScreen::topWindowChanged(QWindow *w)
}
}
+int QAndroidPlatformScreen::rasterSurfaces()
+{
+ return m_rasterSurfaces;
+}
+
void QAndroidPlatformScreen::doRedraw()
{
PROFILE_SCOPE;
@@ -246,7 +255,7 @@ void QAndroidPlatformScreen::doRedraw()
return;
QMutexLocker lock(&m_surfaceMutex);
- if (m_id == -1) {
+ if (m_id == -1 && m_rasterSurfaces) {
m_id = QtAndroid::createSurface(this, m_geometry, true, m_depth);
m_surfaceWaitCondition.wait(&m_surfaceMutex);
}