Drags are such a drag.
authorRobin Gareus <robin@gareus.org>
Sun, 23 Jul 2017 22:52:38 +0000 (00:52 +0200)
committerRobin Gareus <robin@gareus.org>
Sun, 23 Jul 2017 23:59:13 +0000 (01:59 +0200)
gtk2_ardour/automation_line.cc

index 6283ce2bc872005a1d3daa3871cd59aa3cf0826a..16ee210b25b1b56ebb50428b758de84a1a5502e1 100644 (file)
@@ -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 */