summaryrefslogtreecommitdiffstats
path: root/ui/gfx/transform.cc
diff options
context:
space:
mode:
Diffstat (limited to 'ui/gfx/transform.cc')
-rw-r--r--ui/gfx/transform.cc15
1 files changed, 13 insertions, 2 deletions
diff --git a/ui/gfx/transform.cc b/ui/gfx/transform.cc
index 55edb4c..03e2873 100644
--- a/ui/gfx/transform.cc
+++ b/ui/gfx/transform.cc
@@ -95,8 +95,19 @@ bool Transform::TransformRect(gfx::Rect* rect) {
SkRect src = gfx::RectToSkRect(*rect);
if (!matrix_.mapRect(&src))
return false;
- gfx::Rect xrect = gfx::SkRectToRect(src);
- rect->SetRect(xrect.x(), xrect.y(), xrect.width(), xrect.height());
+ *rect = gfx::SkRectToRect(src);
+ return true;
+}
+
+bool Transform::TransformRectReverse(gfx::Rect* rect) {
+ SkMatrix inverse;
+ if (!matrix_.invert(&inverse))
+ return false;
+
+ SkRect src = gfx::RectToSkRect(*rect);
+ if (!inverse.mapRect(&src))
+ return false;
+ *rect = gfx::SkRectToRect(src);
return true;
}