summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/ardour/automation_control.cc6
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 {