diff --git a/src/style_manager/index.js b/src/style_manager/index.js index 233e37dc8..6681434ea 100644 --- a/src/style_manager/index.js +++ b/src/style_manager/index.js @@ -585,6 +585,7 @@ export default () => { const hasVal = propDef(value); const isStack = prop.getType() === 'stack'; const isComposite = prop.getType() === 'composite'; + const opt = { ...opts, __up: true }; let newLayers = isStack ? prop.__getLayersFromStyle(style) : []; let newProps = isComposite ? prop.__getPropsFromStyle(style) : {}; let newValue = hasVal ? value : null; @@ -615,10 +616,10 @@ export default () => { } prop.__setParentTarget(parentTarget); - prop.__getFullValue() !== newValue && prop.upValue(newValue, { ...opts, __up: true }); + prop.__getFullValue() !== newValue && prop.upValue(newValue, opt); isStack && prop.__setLayers(newLayers || []); if (isComposite) { - prop.__setProperties(newProps || {}); + prop.__setProperties(newProps || {}, opt); prop.getProperties().map(pr => pr.__setParentTarget(parentTarget)); } }, diff --git a/src/style_manager/model/PropertyComposite.js b/src/style_manager/model/PropertyComposite.js index 2974aa7f1..6cf271056 100644 --- a/src/style_manager/model/PropertyComposite.js +++ b/src/style_manager/model/PropertyComposite.js @@ -164,7 +164,7 @@ export default Property.extend({ __setProperties(values = {}, opts = {}) { this.getProperties().forEach(prop => { const value = values[prop.getId()]; - !isUndefined(value) && prop.upValue(value, { ...opts, __up: true }); + !isUndefined(value) && prop.__getFullValue() !== value && prop.upValue(value, opts); }); },