summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2020-05-02 09:44:34 -0600
committerPaul Davis <paul@linuxaudiosystems.com>2020-05-04 18:48:17 -0600
commitf6496524a41d2f6964cebe8648998f888a5dc7ec (patch)
tree6fa2a671643f54dd836883c00b9f015d9d58be47 /gtk2_ardour
parent520ccd8ff27c4ffb62d99e754a018b1d1aafbfa5 (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.cc14
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