summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/WebCore/platform/graphics/android/layers/BaseLayerAndroid.cpp1
-rw-r--r--Source/WebKit/android/nav/WebView.cpp12
2 files changed, 11 insertions, 2 deletions
diff --git a/Source/WebCore/platform/graphics/android/layers/BaseLayerAndroid.cpp b/Source/WebCore/platform/graphics/android/layers/BaseLayerAndroid.cpp
index f03a140..5021c57 100644
--- a/Source/WebCore/platform/graphics/android/layers/BaseLayerAndroid.cpp
+++ b/Source/WebCore/platform/graphics/android/layers/BaseLayerAndroid.cpp
@@ -60,6 +60,7 @@ BaseLayerAndroid::BaseLayerAndroid(LayerContent* content)
void BaseLayerAndroid::getLocalTransform(SkMatrix* matrix) const
{
+ matrix->reset();
// base layer doesn't use size in transform calculation
matrix->preConcat(getMatrix());
}
diff --git a/Source/WebKit/android/nav/WebView.cpp b/Source/WebKit/android/nav/WebView.cpp
index ad69042..6c8a251 100644
--- a/Source/WebKit/android/nav/WebView.cpp
+++ b/Source/WebKit/android/nav/WebView.cpp
@@ -525,8 +525,16 @@ void copyBaseContentToPicture(SkPicture* picture)
if (!m_baseLayer || !m_baseLayer->content())
return;
LayerContent* content = m_baseLayer->content();
- content->draw(picture->beginRecording(content->width(), content->height(),
- SkPicture::kUsePathBoundsForClip_RecordingFlag));
+ SkCanvas* canvas = picture->beginRecording(content->width(), content->height(),
+ SkPicture::kUsePathBoundsForClip_RecordingFlag);
+
+ // clear the BaseLayerAndroid's previous matrix (set at each draw)
+ SkMatrix baseMatrix;
+ baseMatrix.reset();
+ m_baseLayer->setMatrix(baseMatrix);
+
+ m_baseLayer->draw(canvas, 0);
+
picture->endRecording();
}