diff options
author | Ben Murdoch <benm@google.com> | 2011-05-24 11:24:40 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2011-06-02 09:53:15 +0100 |
commit | 81bc750723a18f21cd17d1b173cd2a4dda9cea6e (patch) | |
tree | 7a9e5ed86ff429fd347a25153107221543909b19 /Source/WebCore/svg/SVGAnimateMotionElement.cpp | |
parent | 94088a6d336c1dd80a1e734af51e96abcbb689a7 (diff) | |
download | external_webkit-81bc750723a18f21cd17d1b173cd2a4dda9cea6e.zip external_webkit-81bc750723a18f21cd17d1b173cd2a4dda9cea6e.tar.gz external_webkit-81bc750723a18f21cd17d1b173cd2a4dda9cea6e.tar.bz2 |
Merge WebKit at r80534: Intial merge by Git
Change-Id: Ia7a83357124c9e1cdb1debf55d9661ec0bd09a61
Diffstat (limited to 'Source/WebCore/svg/SVGAnimateMotionElement.cpp')
-rw-r--r-- | Source/WebCore/svg/SVGAnimateMotionElement.cpp | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/Source/WebCore/svg/SVGAnimateMotionElement.cpp b/Source/WebCore/svg/SVGAnimateMotionElement.cpp index ec51548..e0202e4 100644 --- a/Source/WebCore/svg/SVGAnimateMotionElement.cpp +++ b/Source/WebCore/svg/SVGAnimateMotionElement.cpp @@ -53,14 +53,17 @@ PassRefPtr<SVGAnimateMotionElement> SVGAnimateMotionElement::create(const Qualif return adoptRef(new SVGAnimateMotionElement(tagName, document)); } -bool SVGAnimateMotionElement::hasValidTarget() const +bool SVGAnimateMotionElement::hasValidAttributeType() const { - if (!SVGAnimationElement::hasValidTarget()) - return false; SVGElement* targetElement = this->targetElement(); + if (!targetElement) + return false; + + // We don't have a special attribute name to verify the animation type. Check the element name instead. if (!targetElement->isStyledTransformable() && !targetElement->hasTagName(SVGNames::textTag)) return false; // Spec: SVG 1.1 section 19.2.15 + // FIXME: svgTag is missing. Needs to be checked, if transforming <svg> could cause problems. if (targetElement->hasTagName(gTag) || targetElement->hasTagName(defsTag) || targetElement->hasTagName(useTag) @@ -134,11 +137,11 @@ static bool parsePoint(const String& s, FloatPoint& point) if (!skipOptionalSpaces(cur, end)) return false; - float x = 0.0f; + float x = 0; if (!parseNumber(cur, end, x)) return false; - float y = 0.0f; + float y = 0; if (!parseNumber(cur, end, y)) return false; @@ -150,10 +153,9 @@ static bool parsePoint(const String& s, FloatPoint& point) void SVGAnimateMotionElement::resetToBaseValue(const String&) { - if (!hasValidTarget()) + if (!hasValidAttributeType()) return; - SVGElement* target = targetElement(); - AffineTransform* transform = target->supplementalTransform(); + AffineTransform* transform = targetElement()->supplementalTransform(); if (!transform) return; transform->makeIdentity(); @@ -177,15 +179,15 @@ bool SVGAnimateMotionElement::calculateFromAndByValues(const String& fromString, void SVGAnimateMotionElement::calculateAnimatedValue(float percentage, unsigned, SVGSMILElement*) { - SVGElement* target = targetElement(); - if (!target) + SVGElement* targetElement = this->targetElement(); + if (!targetElement) return; - AffineTransform* transform = target->supplementalTransform(); + AffineTransform* transform = targetElement->supplementalTransform(); if (!transform) return; - if (target->renderer()) - target->renderer()->setNeedsTransformUpdate(); + if (RenderObject* targetRenderer = targetElement->renderer()) + targetRenderer->setNeedsTransformUpdate(); if (!isAdditive()) transform->makeIdentity(); @@ -204,7 +206,7 @@ void SVGAnimateMotionElement::calculateAnimatedValue(float percentage, unsigned, if (rotateMode == RotateAuto || rotateMode == RotateAutoReverse) { float angle = path.normalAngleAtLength(positionOnPath, ok); if (rotateMode == RotateAutoReverse) - angle += 180.f; + angle += 180; transform->rotate(angle); } } @@ -250,13 +252,12 @@ float SVGAnimateMotionElement::calculateDistance(const String& fromString, const FloatPoint from; FloatPoint to; if (!parsePoint(fromString, from)) - return -1.f; + return -1; if (!parsePoint(toString, to)) - return -1.f; + return -1; FloatSize diff = to - from; return sqrtf(diff.width() * diff.width() + diff.height() * diff.height()); } } - #endif // ENABLE(SVG) |