fix basic logic problem in PropertyTemplate<T>::set so that current/old values are properly managed
git-svn-id: svn://localhost/ardour2/branches/3.0@7310 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
ed19559ece
commit
74745856d6
@ -134,11 +134,24 @@ protected:
|
||||
{}
|
||||
|
||||
void set (T const& v) {
|
||||
if (!_have_old) {
|
||||
_old = _current;
|
||||
_have_old = true;
|
||||
}
|
||||
_current = v;
|
||||
if (v != _current) {
|
||||
if (!_have_old) {
|
||||
_old = _current;
|
||||
_have_old = true;
|
||||
} else {
|
||||
if (v == _old) {
|
||||
/* value has been reset to the value
|
||||
at the start of a history transaction,
|
||||
before clear_history() is called.
|
||||
thus there is effectively no apparent
|
||||
history for this property.
|
||||
*/
|
||||
_have_old = false;
|
||||
}
|
||||
}
|
||||
|
||||
_current = v;
|
||||
}
|
||||
}
|
||||
|
||||
virtual std::string to_string (T const& v) const = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user