diff options
author | nick_m <mainsbridge@gmail.com> | 2015-10-24 00:07:03 +1100 |
---|---|---|
committer | nick_m <mainsbridge@gmail.com> | 2015-10-24 00:07:03 +1100 |
commit | 96524d863b61c9e53423f58c4348d0ebcd840eec (patch) | |
tree | 9d8f8b91810742fbb6534bbd72e54eb8a01bf7ef /gtk2_ardour | |
parent | 96c6da0804f563eb0078df73121c254ee2d33b82 (diff) |
Clear point selection when uniquely selecting a note.
- Also fix selection undo when creating notes w/control
in MouseContent mode.
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/editor_drag.cc | 11 | ||||
-rw-r--r-- | gtk2_ardour/midi_region_view.cc | 3 |
2 files changed, 10 insertions, 4 deletions
diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc index 53dca40476..4be15613b0 100644 --- a/gtk2_ardour/editor_drag.cc +++ b/gtk2_ardour/editor_drag.cc @@ -2381,9 +2381,11 @@ NoteResizeDrag::start_grab (GdkEvent* event, Gdk::Cursor* /*ignored*/) /* has to be relative, may make no sense otherwise */ relative = true; } + /* select this note; if it is already selected, preserve the existing selection, otherwise make this note the only one selected. */ + _editor->get_selection().clear_points(); region->note_selected (cnote, cnote->selected ()); } @@ -5298,11 +5300,9 @@ NoteDrag::start_grab (GdkEvent* event, Gdk::Cursor *) if (add) { _region->note_selected (_primary, true); } else { + _editor->get_selection().clear_points(); _region->unique_select (_primary); } - - _editor->begin_reversible_selection_op(X_("Select Note Press")); - _editor->commit_reversible_selection_op(); } } } @@ -5419,13 +5419,16 @@ NoteDrag::finished (GdkEvent* ev, bool moved) _region->note_deselected (_primary); changed = true; } else { + _editor->get_selection().clear_points(); _region->unique_select (_primary); + changed = true; } } else { bool extend = Keyboard::modifier_state_equals (ev->button.state, Keyboard::TertiaryModifier); bool add = Keyboard::modifier_state_equals (ev->button.state, Keyboard::PrimaryModifier); if (!extend && !add && _region->selection_size() > 1) { + _editor->get_selection().clear_points(); _region->unique_select (_primary); changed = true; } else if (extend) { @@ -5433,6 +5436,8 @@ NoteDrag::finished (GdkEvent* ev, bool moved) changed = true; } else { /* it was added during button press */ + changed = true; + } } diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc index ba8c72120e..d53f5adc72 100644 --- a/gtk2_ardour/midi_region_view.cc +++ b/gtk2_ardour/midi_region_view.cc @@ -543,7 +543,6 @@ MidiRegionView::button_release (GdkEventButton* ev) case MouseContent: case MouseTimeFX: { - clear_selection(); _mouse_changed_selection = true; if (Keyboard::is_insert_note_event(ev)) { @@ -562,6 +561,8 @@ MidiRegionView::button_release (GdkEventButton* ev) beats -= Evoral::Beats::tick(); create_note_at (editor.pixel_to_sample (event_x), event_y, beats, true); + } else { + clear_selection (); } break; |