diff options
Diffstat (limited to 'Source/WebCore/platform/graphics/android/BaseLayerAndroid.cpp')
-rw-r--r-- | Source/WebCore/platform/graphics/android/BaseLayerAndroid.cpp | 10 |
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(); } |