if (_list && as != alist()->automation_state()) {
alist()->set_automation_state (as);
+ if (_desc.toggled) {
+ return; // No watch for boolean automation
+ }
if (as == Write) {
AutomationWatch::instance().add_automation_watch (shared_from_this());
if (!touching()) {
if (alist()->automation_state() == Touch) {
alist()->start_touch (when);
- AutomationWatch::instance().add_automation_watch (shared_from_this());
+ if (!_desc.toggled) {
+ AutomationWatch::instance().add_automation_watch (shared_from_this());
+ }
}
set_touching (true);
}
set_touching (false);
if (alist()->automation_state() == Touch) {
alist()->stop_touch (mark, when);
- AutomationWatch::instance().remove_automation_watch (shared_from_this());
+ if (!_desc.toggled) {
+ AutomationWatch::instance().remove_automation_watch (shared_from_this());
+ }
}
}
}