summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-07-24 00:52:38 +0200
committerRobin Gareus <robin@gareus.org>2017-07-24 01:59:13 +0200
commitf04bacdfac885e927809ee0d3a323defda42033b (patch)
tree844c662c1ce272ffd2d5293872a6a17991b84cec
parent2006701f7337a7e5a2eeac17a7374d59d1f98579 (diff)
Drags are such a drag.
-rw-r--r--gtk2_ardour/automation_line.cc11
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 */