diff options
author | Ben Murdoch <benm@google.com> | 2010-06-15 19:36:43 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2010-06-16 14:52:28 +0100 |
commit | 545e470e52f0ac6a3a072bf559c796b42c6066b6 (patch) | |
tree | c0c14763654d84d37577dde512c3d3b4699a9e86 /WebCore/rendering/RenderSVGResourceContainer.h | |
parent | 719298a66237d38ea5c05f1547123ad8aacbc237 (diff) | |
download | external_webkit-545e470e52f0ac6a3a072bf559c796b42c6066b6.zip external_webkit-545e470e52f0ac6a3a072bf559c796b42c6066b6.tar.gz external_webkit-545e470e52f0ac6a3a072bf559c796b42c6066b6.tar.bz2 |
Merge webkit.org at r61121: Initial merge by git.
Change-Id: Icd6db395c62285be384d137164d95d7466c98760
Diffstat (limited to 'WebCore/rendering/RenderSVGResourceContainer.h')
-rw-r--r-- | WebCore/rendering/RenderSVGResourceContainer.h | 19 |
1 files changed, 17 insertions, 2 deletions
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<Element*>(node())->getIDAttribute(); + // FIXME: Should probably be using getIdAttribute rather than idForStyleResolution. + m_id = node()->hasID() ? static_cast<Element*>(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<SVGStyledTransformableElement*>(object->node()); + AffineTransform transform = resourceTransform; + transform.multiply(element->getScreenCTM()); + return transform; + } private: AtomicString m_id; |