diff options
Diffstat (limited to 'Source')
4 files changed, 6 insertions, 7 deletions
diff --git a/Source/WebCore/platform/graphics/android/GLWebViewState.cpp b/Source/WebCore/platform/graphics/android/GLWebViewState.cpp index 7b43305..aa1c05b 100644 --- a/Source/WebCore/platform/graphics/android/GLWebViewState.cpp +++ b/Source/WebCore/platform/graphics/android/GLWebViewState.cpp @@ -164,11 +164,10 @@ void GLWebViewState::setBaseLayer(BaseLayerAndroid* layer, const SkRegion& inval } else { m_currentBaseLayerRoot = 0; } - if (m_currentBaseLayerRoot && oldRoot) + if (oldRoot != m_currentBaseLayerRoot) TilesManager::instance()->swapLayersTextures(oldRoot, m_currentBaseLayerRoot); SkSafeUnref(oldRoot); - // We only update the base layer if we are not currently // waiting for a tiledPage to be painted if (m_baseLayerUpdate) { diff --git a/Source/WebCore/platform/graphics/android/PaintedSurface.cpp b/Source/WebCore/platform/graphics/android/PaintedSurface.cpp index 0957c0c..8f78638 100644 --- a/Source/WebCore/platform/graphics/android/PaintedSurface.cpp +++ b/Source/WebCore/platform/graphics/android/PaintedSurface.cpp @@ -155,7 +155,7 @@ void PaintedSurface::prepare(GLWebViewState* state) m_scale = state->scale(); - XLOGC("%x layer %d %x prepared at size (%d, %d) @ scale %.2f", this, m_layer->uniqueId(), + XLOG("%x layer %d %x prepared at size (%d, %d) @ scale %.2f", this, m_layer->uniqueId(), m_layer, w, h, m_scale); m_tiledTexture->prepare(state, m_scale, m_pictureUsed != m_layer->pictureUsed(), @@ -214,8 +214,8 @@ void PaintedSurface::computeVisibleArea() { if (!m_visibleArea.isEmpty()) { float tileWidth = TilesManager::instance()->layerTileWidth(); float tileHeight = TilesManager::instance()->layerTileHeight(); - int w = ceilf(m_area.width() / tileWidth); - int h = ceilf(m_area.height() / tileHeight); + int w = ceilf(m_area.width() * m_scale / tileWidth); + int h = ceilf(m_area.height() * m_scale / tileHeight); if (w * h < MAX_UNCLIPPED_AREA) m_visibleArea = m_area; } diff --git a/Source/WebCore/platform/graphics/android/TiledTexture.cpp b/Source/WebCore/platform/graphics/android/TiledTexture.cpp index 87996ab..3182eef 100644 --- a/Source/WebCore/platform/graphics/android/TiledTexture.cpp +++ b/Source/WebCore/platform/graphics/android/TiledTexture.cpp @@ -71,7 +71,7 @@ bool TiledTexture::ready() { // FIXME: have a better system -- maybe keeping the last scale factor // able to fully render everything return !TilesManager::instance()->layerTexturesRemain() - || (tilesAllReady && tilesVisible); + || !tilesVisible || tilesAllReady; } void TiledTexture::prepare(GLWebViewState* state, float scale, bool repaint, diff --git a/Source/WebCore/rendering/RenderLayer.h b/Source/WebCore/rendering/RenderLayer.h index f257593..02ab8e9 100644 --- a/Source/WebCore/rendering/RenderLayer.h +++ b/Source/WebCore/rendering/RenderLayer.h @@ -354,7 +354,7 @@ public: if (hasOverflowScroll()) return true; #endif - return !hasAutoZIndex() || renderer()->isRenderView() || (isComposited() && isFixed()) || m_shouldComposite; + return !hasAutoZIndex() || renderer()->isRenderView() || (isComposited() && isFixed()); } #else #if ENABLE(ANDROID_OVERFLOW_SCROLL) |