diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2020-05-02 09:44:34 -0600 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2020-05-04 18:48:17 -0600 |
commit | f6496524a41d2f6964cebe8648998f888a5dc7ec (patch) | |
tree | 6fa2a671643f54dd836883c00b9f015d9d58be47 /gtk2_ardour | |
parent | 520ccd8ff27c4ffb62d99e754a018b1d1aafbfa5 (diff) |
fix thinko in MidiRegionView::add_to_selection()
The existing code isn't wrong, but inefficient. If the selection is empty,
then this is necessarily the first note, and cannot be present in the
selection. So, don't search the std::set<> and then insert, just insert.
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/midi_region_view.cc | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc index 602c26d365..bcd7d6fced 100644 --- a/gtk2_ardour/midi_region_view.cc +++ b/gtk2_ardour/midi_region_view.cc @@ -2445,13 +2445,6 @@ MidiRegionView::remove_from_selection (NoteBase* ev) void MidiRegionView::add_to_selection (NoteBase* ev) { - Selection::iterator n = _selection.find (ev); - - if (n != _selection.end()) { - /* already selected */ - return; - } - if (_selection.empty()) { /* first note selected in this region, force Editor region @@ -2461,9 +2454,10 @@ MidiRegionView::add_to_selection (NoteBase* ev) trackview.editor().set_selected_midi_region_view (*this); } - _selection.insert (n, ev); - ev->set_selected (true); - start_playing_midi_note ((ev)->note()); + if (_selection.insert (ev).second == true) { + ev->set_selected (true); + start_playing_midi_note ((ev)->note()); + } } Temporal::Beats |