diff options
Diffstat (limited to 'Source')
-rw-r--r-- | Source/WebCore/platform/graphics/android/layers/BaseLayerAndroid.cpp | 1 | ||||
-rw-r--r-- | Source/WebKit/android/nav/WebView.cpp | 12 |
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 914d605..a277fc3 100644 --- a/Source/WebKit/android/nav/WebView.cpp +++ b/Source/WebKit/android/nav/WebView.cpp @@ -528,8 +528,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(); } |