diff options
author | Chris Craik <ccraik@google.com> | 2012-05-30 13:23:57 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-05-30 13:23:57 -0700 |
commit | e4d0c1973ec857d1408499010dca9f6856cecdd1 (patch) | |
tree | 4b5beb48cd6877c4bd261e2eba086f9ddae1dea0 | |
parent | 658c3ec9fdfa61bec9bd765999bb98dc8b1bfd40 (diff) | |
parent | 90ef829b3ebc2caca06ffb46dd587cca71456480 (diff) | |
download | external_webkit-e4d0c1973ec857d1408499010dca9f6856cecdd1.zip external_webkit-e4d0c1973ec857d1408499010dca9f6856cecdd1.tar.gz external_webkit-e4d0c1973ec857d1408499010dca9f6856cecdd1.tar.bz2 |
Merge "Draw entire layer tree in capturePicture()" into jb-dev
-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(); } |