summaryrefslogtreecommitdiffstats
path: root/WebCore/svg/SVGFEDisplacementMapElement.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/svg/SVGFEDisplacementMapElement.cpp')
-rw-r--r--WebCore/svg/SVGFEDisplacementMapElement.cpp32
1 files changed, 27 insertions, 5 deletions
diff --git a/WebCore/svg/SVGFEDisplacementMapElement.cpp b/WebCore/svg/SVGFEDisplacementMapElement.cpp
index adf02fe..b4fcb92 100644
--- a/WebCore/svg/SVGFEDisplacementMapElement.cpp
+++ b/WebCore/svg/SVGFEDisplacementMapElement.cpp
@@ -29,11 +29,8 @@ namespace WebCore {
SVGFEDisplacementMapElement::SVGFEDisplacementMapElement(const QualifiedName& tagName, Document* doc)
: SVGFilterPrimitiveStandardAttributes(tagName, doc)
- , m_in1(this, SVGNames::inAttr)
- , m_in2(this, SVGNames::in2Attr)
- , m_xChannelSelector(this, SVGNames::xChannelSelectorAttr, CHANNEL_A)
- , m_yChannelSelector(this, SVGNames::yChannelSelectorAttr, CHANNEL_A)
- , m_scale(this, SVGNames::scaleAttr)
+ , m_xChannelSelector(CHANNEL_A)
+ , m_yChannelSelector(CHANNEL_A)
{
}
@@ -72,6 +69,31 @@ void SVGFEDisplacementMapElement::parseMappedAttribute(MappedAttribute* attr)
SVGFilterPrimitiveStandardAttributes::parseMappedAttribute(attr);
}
+void SVGFEDisplacementMapElement::synchronizeProperty(const QualifiedName& attrName)
+{
+ SVGFilterPrimitiveStandardAttributes::synchronizeProperty(attrName);
+
+ if (attrName == anyQName()) {
+ synchronizeXChannelSelector();
+ synchronizeYChannelSelector();
+ synchronizeIn1();
+ synchronizeIn2();
+ synchronizeScale();
+ return;
+ }
+
+ if (attrName == SVGNames::xChannelSelectorAttr)
+ synchronizeXChannelSelector();
+ else if (attrName == SVGNames::yChannelSelectorAttr)
+ synchronizeYChannelSelector();
+ else if (attrName == SVGNames::inAttr)
+ synchronizeIn1();
+ else if (attrName == SVGNames::in2Attr)
+ synchronizeIn2();
+ else if (attrName == SVGNames::scaleAttr)
+ synchronizeScale();
+}
+
bool SVGFEDisplacementMapElement::build(SVGResourceFilter* filterResource)
{
FilterEffect* input1 = filterResource->builder()->getEffectById(in1());