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
|
TrackViewList
|
||||||
TrackSelection::add (TrackViewList const & t)
|
TrackSelection::add (TrackViewList const & t)
|
||||||
{
|
{
|
||||||
TrackViewList added = TrackViewList::add (t);
|
TrackViewList added;
|
||||||
|
|
||||||
for (TrackSelection::const_iterator i = t.begin(); i != t.end(); ++i) {
|
for (TrackSelection::const_iterator i = t.begin(); i != t.end(); ++i) {
|
||||||
|
|
||||||
/* select anything in the same select-enabled route group */
|
/* select anything in the same select-enabled route group */
|
||||||
ARDOUR::RouteGroup* rg = (*i)->route_group ();
|
ARDOUR::RouteGroup* rg = (*i)->route_group ();
|
||||||
|
|
||||||
if (rg && rg->is_active() && rg->is_select ()) {
|
if (rg && rg->is_active() && rg->is_select ()) {
|
||||||
|
|
||||||
TrackViewList tr = _editor->axis_views_from_routes (rg->route_list ());
|
TrackViewList tr = _editor->axis_views_from_routes (rg->route_list ());
|
||||||
|
|
||||||
for (TrackViewList::iterator j = tr.begin(); j != tr.end(); ++j) {
|
for (TrackViewList::iterator j = tr.begin(); j != tr.end(); ++j) {
|
||||||
if (!contains (*j)) {
|
|
||||||
added.push_back (*j);
|
/* Do not add the trackview passed in as an
|
||||||
push_back (*j);
|
* 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;
|
return added;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user