make Session::get_remote_nth_stripable() ignore hidden stripables unless asked.

this more closely matches the semantics of ye olde get_*_by_rid() from ardour 4.x and earlier
This commit is contained in:
Paul Davis 2016-08-01 12:02:30 -04:00
parent e168664167
commit 480e0b2a5f
1 changed files with 18 additions and 0 deletions

View File

@ -4244,6 +4244,24 @@ Session::get_remote_nth_stripable (PresentationInfo::order_t n, PresentationInfo
sl.sort (Stripable::PresentationOrderSorter());
for (StripableList::const_iterator s = sl.begin(); s != sl.end(); ++s) {
if ((*s)->presentation_info().hidden()) {
/* if the caller didn't explicitly ask for hidden
stripables, ignore hidden ones. This matches
the semantics of the pre-PresentationOrder
"get by RID" logic of Ardour 4.x and earlier.
XXX at some point we should likely reverse
the logic of the flags, because asking for "the
hidden stripables" is not going to be common,
whereas asking for visible ones is normal.
*/
if (! (flags & PresentationInfo::Hidden)) {
continue;
}
}
if ((*s)->presentation_info().flag_match (flags)) {
if (match_cnt++ == n) {
return *s;