make more of an effort to ensure that the last element in Selection::tracks is the most-recently selected
This commit is contained in:
parent
893d4e7a07
commit
8e06f43f80
@ -41,22 +41,41 @@ TrackSelection::~TrackSelection ()
|
||||
TrackViewList
|
||||
TrackSelection::add (TrackViewList const & t)
|
||||
{
|
||||
TrackViewList added = TrackViewList::add (t);
|
||||
TrackViewList added;
|
||||
|
||||
for (TrackSelection::const_iterator i = t.begin(); i != t.end(); ++i) {
|
||||
|
||||
/* select anything in the same select-enabled route group */
|
||||
ARDOUR::RouteGroup* rg = (*i)->route_group ();
|
||||
|
||||
if (rg && rg->is_active() && rg->is_select ()) {
|
||||
|
||||
TrackViewList tr = _editor->axis_views_from_routes (rg->route_list ());
|
||||
|
||||
for (TrackViewList::iterator j = tr.begin(); j != tr.end(); ++j) {
|
||||
if (!contains (*j)) {
|
||||
added.push_back (*j);
|
||||
push_back (*j);
|
||||
|
||||
/* Do not add the trackview passed in as an
|
||||
* argument, because we want that to be on the
|
||||
* end of the list.
|
||||
*/
|
||||
|
||||
if (*j != *i) {
|
||||
if (!contains (*j)) {
|
||||
added.push_back (*j);
|
||||
push_back (*j);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* now add the the trackview's passed in as actual arguments */
|
||||
|
||||
if (!contains (*i)) {
|
||||
added.push_back (*i);
|
||||
push_back (*i);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return added;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user