diff options
author | Robin Gareus <robin@gareus.org> | 2017-07-24 00:52:38 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2017-07-24 01:59:13 +0200 |
commit | f04bacdfac885e927809ee0d3a323defda42033b (patch) | |
tree | 844c662c1ce272ffd2d5293872a6a17991b84cec | |
parent | 2006701f7337a7e5a2eeac17a7374d59d1f98579 (diff) |
Drags are such a drag.
-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 */ |