summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/platform/graphics/android/BaseLayerAndroid.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/platform/graphics/android/BaseLayerAndroid.cpp')
-rw-r--r--Source/WebCore/platform/graphics/android/BaseLayerAndroid.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/Source/WebCore/platform/graphics/android/BaseLayerAndroid.cpp b/Source/WebCore/platform/graphics/android/BaseLayerAndroid.cpp
index 94bf045..827c858 100644
--- a/Source/WebCore/platform/graphics/android/BaseLayerAndroid.cpp
+++ b/Source/WebCore/platform/graphics/android/BaseLayerAndroid.cpp
@@ -337,9 +337,13 @@ bool BaseLayerAndroid::drawGL(double currentTime, LayerAndroid* compositedRoot,
TilesManager::instance()->videoLayerManager()->deleteUnusedTextures();
compositedRoot->prepare(m_glWebViewState);
- if (compositedRoot->drawGL(m_glWebViewState, matrix))
- needsRedraw = true;
- else if (!animsRunning)
+ if (compositedRoot->drawGL(m_glWebViewState, matrix)) {
+ if (TilesManager::instance()->layerTexturesRemain()) {
+ // only try redrawing for layers if layer textures remain,
+ // otherwise we'll repaint without getting anything done
+ needsRedraw = true;
+ }
+ } else if (!animsRunning)
m_glWebViewState->resetLayersDirtyArea();
}