summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authornick_m <mainsbridge@gmail.com>2015-10-05 02:56:56 +1100
committernick_m <mainsbridge@gmail.com>2015-10-20 00:53:29 +1100
commitbe1396d06626c12c7da85dcd076c8959fd2ccd24 (patch)
treea101461a4df2230b91d99a624ff388b546735fdc /gtk2_ardour
parent070c67bdcccd3eaed0d12f7ea9e71f3398e0a6ff (diff)
Select the control point about to be deleted when using shift + right click.
- fixes incorrect selection changes when doing this.
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/automation_line.cc1
-rw-r--r--gtk2_ardour/editor_mouse.cc8
-rw-r--r--gtk2_ardour/region_gain_line.cc1
3 files changed, 8 insertions, 2 deletions
diff --git a/gtk2_ardour/automation_line.cc b/gtk2_ardour/automation_line.cc
index cb59e6d571..72cf283ff4 100644
--- a/gtk2_ardour/automation_line.cc
+++ b/gtk2_ardour/automation_line.cc
@@ -882,6 +882,7 @@ AutomationLine::remove_point (ControlPoint& cp)
trackview.editor().begin_reversible_command (_("remove control point"));
XMLNode &before = alist->get_state();
+ trackview.editor ().get_selection ().clear_points ();
alist->erase (cp.model());
trackview.editor().session()->add_command(
diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc
index f49c5983a8..297483d563 100644
--- a/gtk2_ardour/editor_mouse.cc
+++ b/gtk2_ardour/editor_mouse.cc
@@ -458,7 +458,7 @@ Editor::button_selection (ArdourCanvas::Item* item, GdkEvent* event, ItemType it
/* almost no selection action on modified button-2 or button-3 events */
- if (item_type != RegionItem && event->button.button != 2) {
+ if ((item_type != RegionItem && event->button.button != 2) && !(item_type == ControlPointItem && event->button.button == 3)) {
return;
}
}
@@ -519,7 +519,11 @@ Editor::button_selection (ArdourCanvas::Item* item, GdkEvent* event, ItemType it
/* for object/track exclusivity, we don't call set_selected_track_as_side_effect (op); */
if (eff_mouse_mode != MouseRange) {
- _mouse_changed_selection |= set_selected_control_point_from_click (press, op);
+ if (event->button.button != 3) {
+ _mouse_changed_selection |= set_selected_control_point_from_click (press, op);
+ } else {
+ _mouse_changed_selection |= set_selected_control_point_from_click (press, Selection::Set);
+ }
}
break;
diff --git a/gtk2_ardour/region_gain_line.cc b/gtk2_ardour/region_gain_line.cc
index 7a748c8749..dc1c14e437 100644
--- a/gtk2_ardour/region_gain_line.cc
+++ b/gtk2_ardour/region_gain_line.cc
@@ -81,6 +81,7 @@ AudioRegionGainLine::remove_point (ControlPoint& cp)
trackview.session()->add_command(new StatefulDiffCommand (rv.audio_region()));
}
+ trackview.editor ().get_selection ().clear_points ();
alist->erase (cp.model());
trackview.editor().session()->add_command (new MementoCommand<AutomationList>(*alist.get(), &before, &alist->get_state()));