From 545e470e52f0ac6a3a072bf559c796b42c6066b6 Mon Sep 17 00:00:00 2001 From: Ben Murdoch Date: Tue, 15 Jun 2010 19:36:43 +0100 Subject: Merge webkit.org at r61121: Initial merge by git. Change-Id: Icd6db395c62285be384d137164d95d7466c98760 --- WebCore/rendering/RenderSVGResourceContainer.h | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'WebCore/rendering/RenderSVGResourceContainer.h') diff --git a/WebCore/rendering/RenderSVGResourceContainer.h b/WebCore/rendering/RenderSVGResourceContainer.h index b63575d..54617bb 100644 --- a/WebCore/rendering/RenderSVGResourceContainer.h +++ b/WebCore/rendering/RenderSVGResourceContainer.h @@ -23,6 +23,8 @@ #if ENABLE(SVG) #include "RenderSVGHiddenContainer.h" + +#include "SVGStyledTransformableElement.h" #include "RenderSVGResource.h" namespace WebCore { @@ -33,7 +35,8 @@ public: RenderSVGResourceContainer(SVGStyledElement* node) : RenderSVGHiddenContainer(node) , RenderSVGResource() - , m_id(node->getIDAttribute()) + // FIXME: Should probably be using getIdAttribute rather than idForStyleResolution. + , m_id(node->hasID() ? node->idForStyleResolution() : nullAtom) { ASSERT(node->document()); node->document()->accessSVGExtensions()->addResource(m_id, this); @@ -55,7 +58,8 @@ public: // Remove old id, that is guaranteed to be present in cache extensions->removeResource(m_id); - m_id = static_cast(node())->getIDAttribute(); + // FIXME: Should probably be using getIdAttribute rather than idForStyleResolution. + m_id = node()->hasID() ? static_cast(node())->idForStyleResolution() : nullAtom; // It's possible that an element is referencing us with the new id, and has to be notified that we're existing now if (extensions->isPendingResource(m_id)) { @@ -80,6 +84,17 @@ public: virtual bool drawsContents() { return false; } virtual RenderSVGResourceContainer* toRenderSVGResourceContainer() { return this; } + + static AffineTransform transformOnNonScalingStroke(RenderObject* object, const AffineTransform resourceTransform) + { + if (!object->isRenderPath()) + return resourceTransform; + + SVGStyledTransformableElement* element = static_cast(object->node()); + AffineTransform transform = resourceTransform; + transform.multiply(element->getScreenCTM()); + return transform; + } private: AtomicString m_id; -- cgit v1.1