diff options
Diffstat (limited to 'libs/pbd/stateful.cc')
-rw-r--r-- | libs/pbd/stateful.cc | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/libs/pbd/stateful.cc b/libs/pbd/stateful.cc index a8dd7a4177..9a1a116128 100644 --- a/libs/pbd/stateful.cc +++ b/libs/pbd/stateful.cc @@ -196,10 +196,12 @@ Stateful::changed (PropertyChange& c) const PropertyChange Stateful::set_properties (XMLNode const & node) { - PropertyChange c = PropertyChange (0); + PropertyChange c; for (OwnedPropertyList::iterator i = _properties.begin(); i != _properties.end(); ++i) { - c = PropertyChange (c | i->second->set_state (node)); + if (i->second->set_state (node)) { + c.add (i->first); + } } post_set (); @@ -210,12 +212,14 @@ Stateful::set_properties (XMLNode const & node) PropertyChange Stateful::set_properties (const PropertyList& property_list) { - PropertyChange c = PropertyChange (0); + PropertyChange c; PropertyList::const_iterator p; for (OwnedPropertyList::iterator i = _properties.begin(); i != _properties.end(); ++i) { if ((p = property_list.find (i->first)) != property_list.end()) { - c = PropertyChange (c|set_property (*(p->second))); + if (set_property (*p->second)) { + c.add (i->first); + } } } |