change design of MidiRegionView::add_to_selection() so that the rubber-band select works again

Adding the first note trigged Editor::set_selected_midi_region_view() which cleared
the (newly added to) selection
This commit is contained in:
Paul Davis 2020-05-01 22:27:50 -06:00
parent 044be53616
commit 8556560eca

View file

@ -2440,14 +2440,14 @@ MidiRegionView::remove_from_selection (NoteBase* ev)
void void
MidiRegionView::add_to_selection (NoteBase* ev) MidiRegionView::add_to_selection (NoteBase* ev)
{ {
const bool selection_was_empty = _selection.empty(); Selection::iterator n = _selection.find (ev);
if (_selection.insert (ev).second) { if (n != _selection.end()) {
ev->set_selected (true); /* already selected */
start_playing_midi_note ((ev)->note()); return;
} }
if (selection_was_empty) { if (_selection.empty()) {
/* first note selected in this region, force Editor region /* first note selected in this region, force Editor region
* selection to this region. * selection to this region.
@ -2455,6 +2455,10 @@ MidiRegionView::add_to_selection (NoteBase* ev)
trackview.editor().set_selected_midi_region_view (*this); trackview.editor().set_selected_midi_region_view (*this);
} }
_selection.insert (n, ev);
ev->set_selected (true);
start_playing_midi_note ((ev)->note());
} }
Temporal::Beats Temporal::Beats