summaryrefslogtreecommitdiffstats
path: root/WebCore/platform/graphics
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/platform/graphics')
-rw-r--r--WebCore/platform/graphics/android/GLWebViewState.cpp8
-rw-r--r--WebCore/platform/graphics/android/GLWebViewState.h3
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);