summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/svg/SVGSVGElement.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/svg/SVGSVGElement.cpp')
-rw-r--r--Source/WebCore/svg/SVGSVGElement.cpp20
1 files changed, 6 insertions, 14 deletions
diff --git a/Source/WebCore/svg/SVGSVGElement.cpp b/Source/WebCore/svg/SVGSVGElement.cpp
index e2540e3..0778bb7 100644
--- a/Source/WebCore/svg/SVGSVGElement.cpp
+++ b/Source/WebCore/svg/SVGSVGElement.cpp
@@ -129,20 +129,12 @@ void SVGSVGElement::setContentStyleType(const AtomicString& type)
FloatRect SVGSVGElement::viewport() const
{
- double x = 0;
- double y = 0;
- if (!isOutermostSVG()) {
- x = this->x().value(this);
- y = this->y().value(this);
- }
- float w = width().value(this);
- float h = height().value(this);
- AffineTransform viewBox = viewBoxToViewTransform(w, h);
- double wDouble = w;
- double hDouble = h;
- viewBox.map(x, y, x, y);
- viewBox.map(w, h, wDouble, hDouble);
- return FloatRect::narrowPrecision(x, y, wDouble, hDouble);
+ FloatRect viewRectangle;
+ if (!isOutermostSVG())
+ viewRectangle.setLocation(FloatPoint(x().value(this), y().value(this)));
+
+ viewRectangle.setSize(FloatSize(width().value(this), height().value(this)));
+ return viewBoxToViewTransform(viewRectangle.width(), viewRectangle.height()).mapRect(viewRectangle);
}
int SVGSVGElement::relativeWidthValue() const