diff options
Diffstat (limited to 'WebCore/svg/SVGFEDisplacementMapElement.cpp')
-rw-r--r-- | WebCore/svg/SVGFEDisplacementMapElement.cpp | 32 |
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()); |