Index: src/core/SkCanvas.cpp |
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp |
index c1d2726d8c3a9b5ffc853a3adfc27a924758422d..665d60f898e44c0920c424b06921aabea35b8891 100644 |
--- a/src/core/SkCanvas.cpp |
+++ b/src/core/SkCanvas.cpp |
@@ -1609,12 +1609,13 @@ void SkCanvas::updateClipConservativelyUsingBounds(const SkRect& bounds, SkRegio |
SkIRect deviceIBounds; |
this->getDevice()->getGlobalBounds(&deviceIBounds); |
deviceBounds = SkRect::Make(deviceIBounds); |
- this->SkCanvas::save(SkCanvas::kMatrix_SaveFlag); |
+ |
// set the clip in device space |
+ SkMatrix savedMatrix = this->getTotalMatrix(); |
this->SkCanvas::setMatrix(SkMatrix::I()); |
this->SkCanvas::onClipRect(deviceBounds, SkRegion::kReplace_Op, |
kHard_ClipEdgeStyle); |
- this->SkCanvas::restore(); //pop the matrix, but keep the clip |
+ this->setMatrix(savedMatrix); |
break; |
} |
default: |