From 58a8d50bdcf7659931b6f82d20fa0a2c2d1fd273 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Wed, 19 Feb 2014 13:15:33 -0500 Subject: [PATCH] add a hack to deal with device discovery race, in which the devices were not actually known to be ready before the last update_surfaces() call (which is where binding between strips and routes occurs) ; add support for Mackie Control touch on/off messages --- gtk2_ardour/editor_drag.cc | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc index d8209d4b51..7ba7b5207d 100644 --- a/gtk2_ardour/editor_drag.cc +++ b/gtk2_ardour/editor_drag.cc @@ -3318,10 +3318,25 @@ LineDrag::motion (GdkEvent* event, bool) } void -LineDrag::finished (GdkEvent* event, bool) +LineDrag::finished (GdkEvent* event, bool movement_occured) { - motion (event, false); - _line->end_drag (false, 0); + if (movement_occured) { + motion (event, false); + _line->end_drag (false, 0); + } else { + /* add a new control point on the line */ + + AutomationTimeAxisView* atv; + + _line->end_drag (false, 0); + + if ((atv = dynamic_cast(_editor->clicked_axisview)) != 0) { + framepos_t where = _editor->event_frame (event, 0, 0); + std::cerr << "Add new point @ " << where << ", " << _drags->current_pointer_y() << std::endl; + atv->add_automation_event (event, where, _drags->current_pointer_y(), false); + } + } + _editor->session()->commit_reversible_command (); }