summaryrefslogtreecommitdiff
path: root/libs/pbd/stateful.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/pbd/stateful.cc')
-rw-r--r--libs/pbd/stateful.cc12
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);
+ }
}
}