diff options
author | nick_m <mainsbridge@gmail.com> | 2015-09-14 05:24:28 +1000 |
---|---|---|
committer | nick_m <mainsbridge@gmail.com> | 2015-10-20 00:53:27 +1100 |
commit | 17294ab9ec2d0b826dce88930148fda0f5e978b3 (patch) | |
tree | fbcca294ff1009370e3a12366b5fd8df17abee06 /gtk2_ardour/editor_selection.cc | |
parent | 03df442d0e5878868a7bc945cf23371271e67c42 (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.cc | 14 |
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); |