summaryrefslogtreecommitdiffstats
path: root/WebCore/rendering/RenderSVGResourceContainer.h
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2010-06-15 19:36:43 +0100
committerBen Murdoch <benm@google.com>2010-06-16 14:52:28 +0100
commit545e470e52f0ac6a3a072bf559c796b42c6066b6 (patch)
treec0c14763654d84d37577dde512c3d3b4699a9e86 /WebCore/rendering/RenderSVGResourceContainer.h
parent719298a66237d38ea5c05f1547123ad8aacbc237 (diff)
downloadexternal_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.h19
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;