diff options
Diffstat (limited to 'libs/ardour/processor.cc')
-rw-r--r-- | libs/ardour/processor.cc | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/libs/ardour/processor.cc b/libs/ardour/processor.cc index 49a2faa742..c75a7720e0 100644 --- a/libs/ardour/processor.cc +++ b/libs/ardour/processor.cc @@ -150,10 +150,13 @@ Processor::set_state_2X (const XMLNode & node, int /*version*/) } if ((prop = (*i)->property ("active")) != 0) { - if (_active != string_is_affirmative (prop->value())) { - _active = !_active; - _pending_active = _active; - ActiveChanged (); /* EMIT_SIGNAL */ + bool const a = string_is_affirmative (prop->value ()); + if (_active != a) { + if (a) { + activate (); + } else { + deactivate (); + } } } } @@ -232,10 +235,13 @@ Processor::set_state (const XMLNode& node, int version) } } - if (_active != string_is_affirmative (prop->value())) { - _active = !_active; - _pending_active = _active; - ActiveChanged (); /* EMIT_SIGNAL */ + bool const a = string_is_affirmative (prop->value ()); + if (_active != a) { + if (a) { + activate (); + } else { + deactivate (); + } } return 0; |