Bug 831529 - Stop using SkPath::contains for now since it doesn't match the canvas spec. r=jrmuizel

This commit is contained in:
Matt Woodrow 2013-02-08 10:54:59 +13:00
parent e46e3f8e38
commit 4092ec62cc

View File

@ -136,8 +136,15 @@ PathSkia::ContainsPoint(const Point &aPoint, const Matrix &aTransform) const
return false;
}
return mPath.contains(SkFloatToScalar(transformed.x),
SkFloatToScalar(transformed.y));
SkRegion pointRect;
pointRect.setRect(int32_t(SkFloatToScalar(transformed.x - 1)),
int32_t(SkFloatToScalar(transformed.y - 1)),
int32_t(SkFloatToScalar(transformed.x + 1)),
int32_t(SkFloatToScalar(transformed.y + 1)));
SkRegion pathRegion;
return pathRegion.setPath(mPath, pointRect);
}
static Rect SkRectToRect(const SkRect& aBounds)
@ -170,8 +177,15 @@ PathSkia::StrokeContainsPoint(const StrokeOptions &aStrokeOptions,
return false;
}
return strokePath.contains(SkFloatToScalar(transformed.x),
SkFloatToScalar(transformed.y));
SkRegion pointRect;
pointRect.setRect(int32_t(SkFloatToScalar(transformed.x - 1)),
int32_t(SkFloatToScalar(transformed.y - 1)),
int32_t(SkFloatToScalar(transformed.x + 1)),
int32_t(SkFloatToScalar(transformed.y + 1)));
SkRegion pathRegion;
return pathRegion.setPath(strokePath, pointRect);
}
Rect