diff options
Diffstat (limited to 'gtk2_ardour/automation_line.cc')
-rw-r--r-- | gtk2_ardour/automation_line.cc | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/gtk2_ardour/automation_line.cc b/gtk2_ardour/automation_line.cc index 6283ce2bc8..16ee210b25 100644 --- a/gtk2_ardour/automation_line.cc +++ b/gtk2_ardour/automation_line.cc @@ -1056,14 +1056,21 @@ AutomationLine::reset () return; } + /* TODO: abort any drags in progress, e.g. draging points while writing automation + * (the control-point model, used by AutomationLine::drag_motion, will be invalid). + * + * Note: reset() may also be called from an aborted drag (LineDrag::aborted) + * maybe abort in list_changed(), interpolation_changed() and ... ? + * XXX + */ + alist->apply_to_points (*this, &AutomationLine::reset_callback); } void AutomationLine::queue_reset () { - /* this must be called from the GUI thread - */ + /* this must be called from the GUI thread */ if (trackview.editor().session()->transport_rolling() && alist->automation_write()) { /* automation write pass ... defer to a timeout */ |