diff options
Diffstat (limited to 'libs/ardour/automation_control.cc')
-rw-r--r-- | libs/ardour/automation_control.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libs/ardour/automation_control.cc b/libs/ardour/automation_control.cc index 2be0538229..e0ebc00062 100644 --- a/libs/ardour/automation_control.cc +++ b/libs/ardour/automation_control.cc @@ -144,6 +144,8 @@ AutomationControl::set_automation_state (AutoState as) } if (_list && as != alist()->automation_state()) { + const double val = get_value (); + alist()->set_automation_state (as); if (_desc.toggled) { return; // No watch for boolean automation @@ -152,6 +154,10 @@ AutomationControl::set_automation_state (AutoState as) if (as == Write) { AutomationWatch::instance().add_automation_watch (shared_from_this()); } else if (as == Touch) { + if (alist()->empty()) { + Control::set_double (val, _session.transport_frame(), true); + Changed (true, Controllable::NoGroup); + } if (!touching()) { AutomationWatch::instance().remove_automation_watch (shared_from_this()); } else { |