summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_selection.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/editor_selection.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/editor_selection.cc')
-rw-r--r--gtk2_ardour/editor_selection.cc14
1 files changed, 13 insertions, 1 deletions
diff --git a/gtk2_ardour/editor_selection.cc b/gtk2_ardour/editor_selection.cc
index 3a6277ecec..27e17d5fcc 100644
--- a/gtk2_ardour/editor_selection.cc
+++ b/gtk2_ardour/editor_selection.cc
@@ -327,15 +327,27 @@ Editor::set_selected_control_point_from_click (bool press, Selection::Operation
if (!clicked_control_point) {
return false;
}
+
bool ret = false;
switch (op) {
case Selection::Set:
- if (press) {
+ if (!selection->selected (clicked_control_point)) {
selection->set (clicked_control_point);
ret = true;
+ } else {
+ /* clicked on an already selected point */
+ if (press) {
+ break;
+ } else {
+ if (selection->points.size() > 1) {
+ selection->set (clicked_control_point);
+ ret = true;
+ }
+ }
}
break;
+
case Selection::Add:
if (press) {
selection->add (clicked_control_point);