summaryrefslogtreecommitdiff
path: root/gtk2_ardour/automation_time_axis.cc
diff options
context:
space:
mode:
authornick_m <mainsbridge@gmail.com>2015-09-14 05:24:28 +1000
committernick_m <mainsbridge@gmail.com>2015-10-20 00:53:27 +1100
commit17294ab9ec2d0b826dce88930148fda0f5e978b3 (patch)
treefbcca294ff1009370e3a12366b5fd8df17abee06 /gtk2_ardour/automation_time_axis.cc
parent03df442d0e5878868a7bc945cf23371271e67c42 (diff)
Make control point selection more consistent.
- disallow simultaneous events via ControlList::editor_add () - clicking on an automation line selects the points that define it. - don't 'flash' a region selection when using mousedraw mode. - cp click selection resembles region selection. - region gain points respect snap modifier (a la automation points).
Diffstat (limited to 'gtk2_ardour/automation_time_axis.cc')
-rw-r--r--gtk2_ardour/automation_time_axis.cc17
1 files changed, 10 insertions, 7 deletions
diff --git a/gtk2_ardour/automation_time_axis.cc b/gtk2_ardour/automation_time_axis.cc
index 1c79593b34..1ff3024ac6 100644
--- a/gtk2_ardour/automation_time_axis.cc
+++ b/gtk2_ardour/automation_time_axis.cc
@@ -638,18 +638,21 @@ AutomationTimeAxisView::add_automation_event (GdkEvent* event, framepos_t when,
_line->view_to_model_coord (x, y);
-
_editor.snap_to_with_modifier (when, event);
- _editor.begin_reversible_command (_("add automation event"));
XMLNode& before = list->get_state();
+ std::list<Selectable*> results;
+ if (list->editor_add (when, y, with_guard_points)) {
+ XMLNode& after = list->get_state();
+ _editor.begin_reversible_command (_("add automation event"));
+ _session->add_command (new MementoCommand<ARDOUR::AutomationList> (*list.get (), &before, &after));
- list->editor_add (when, y, with_guard_points);
+ _line->get_selectables (when, when, 0.0, 1.0, results);
+ _editor.get_selection ().set (results);
- XMLNode& after = list->get_state();
- _session->add_command (new MementoCommand<ARDOUR::AutomationList> (*list.get (), &before, &after));
- _editor.commit_reversible_command ();
- _session->set_dirty ();
+ _editor.commit_reversible_command ();
+ _session->set_dirty ();
+ }
}
bool