diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2017-04-01 17:14:06 +0200 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2017-04-03 00:33:44 +0200 |
commit | 54bab5153f1cb105ed9c31f42d032587750a782e (patch) | |
tree | 9f8cb15fbe2a5b707130698f46d7d595e6704493 /gtk2_ardour/editor.cc | |
parent | f201726286ab7f0aa5c65d9a63cc1c8f38d5ca18 (diff) |
don't set region selection on loading a session 1 by 1, but just once after they should all exist
Diffstat (limited to 'gtk2_ardour/editor.cc')
-rw-r--r-- | gtk2_ardour/editor.cc | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index 458667ce64..16be22768f 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -5152,6 +5152,17 @@ Editor::first_idle () (*t)->first_idle(); } + /* now that all regionviews should exist, setup region selection */ + + RegionSelection rs; + + for (list<PBD::ID>::iterator pr = selection->regions.pending.begin (); pr != selection->regions.pending.end (); ++pr) { + /* this is cumulative: rs is NOT cleared each time */ + get_regionviews_by_id (*pr, rs); + } + + selection->set (rs); + // first idle adds route children (automation tracks), so we need to redisplay here _routes->redisplay (); @@ -5253,14 +5264,6 @@ Editor::located () void Editor::region_view_added (RegionView * rv) { - for (list<PBD::ID>::iterator pr = selection->regions.pending.begin (); pr != selection->regions.pending.end (); ++pr) { - if (rv->region ()->id () == (*pr)) { - selection->add (rv); - selection->regions.pending.erase (pr); - break; - } - } - MidiRegionView* mrv = dynamic_cast<MidiRegionView*> (rv); if (mrv) { list<pair<PBD::ID const, list<Evoral::event_id_t> > >::iterator rnote; |