diff options
Diffstat (limited to 'WebCore/platform/graphics')
-rw-r--r-- | WebCore/platform/graphics/android/GLWebViewState.cpp | 8 | ||||
-rw-r--r-- | WebCore/platform/graphics/android/GLWebViewState.h | 3 |
2 files changed, 8 insertions, 3 deletions
diff --git a/WebCore/platform/graphics/android/GLWebViewState.cpp b/WebCore/platform/graphics/android/GLWebViewState.cpp index 444ff17..62eab0f 100644 --- a/WebCore/platform/graphics/android/GLWebViewState.cpp +++ b/WebCore/platform/graphics/android/GLWebViewState.cpp @@ -111,13 +111,17 @@ GLWebViewState::~GLWebViewState() } void GLWebViewState::setBaseLayer(BaseLayerAndroid* layer, const SkRegion& inval, - bool showVisualIndicator) + bool showVisualIndicator, bool isPictureAfterFirstLayout) { android::Mutex::Autolock lock(m_baseLayerLock); - if (!layer) { + if (!layer || isPictureAfterFirstLayout) { m_tiledPageA->setUsable(false); m_tiledPageB->setUsable(false); } + if (isPictureAfterFirstLayout) { + m_baseLayerUpdate = true; + m_invalidateRegion.setEmpty(); + } if (m_baseLayer && layer) m_baseLayer->swapExtra(layer); m_baseLayer = layer; diff --git a/WebCore/platform/graphics/android/GLWebViewState.h b/WebCore/platform/graphics/android/GLWebViewState.h index 3f68757..e3b33f2 100644 --- a/WebCore/platform/graphics/android/GLWebViewState.h +++ b/WebCore/platform/graphics/android/GLWebViewState.h @@ -175,7 +175,8 @@ public: void resetTransitionTime() { m_transitionTime = -1; } unsigned int paintBaseLayerContent(SkCanvas* canvas); - void setBaseLayer(BaseLayerAndroid* layer, const SkRegion& inval, bool showVisualIndicator); + void setBaseLayer(BaseLayerAndroid* layer, const SkRegion& inval, bool showVisualIndicator, + bool isPictureAfterFirstLayout); void setExtra(BaseLayerAndroid*, SkPicture&, const IntRect&, bool allowSame); void scheduleUpdate(const double& currentTime, const SkIRect& viewport, float scale); |