Retain first-selected-stripable when removing ATAV

This allows ctrl surfaces (notably Faderport) to keep
editing plugin settings, when some unrelated plugin is removed.

Route::processors_changed calls RouteTimeAxisView::processors_changed,
and if a plugin automation line vanishes ~AutomationTimeAxisView
deselected the track. This triggered a control surface update.
This commit is contained in:
Robin Gareus 2024-01-13 17:56:33 +01:00
parent bfb22e2acc
commit 83e4b49a9e
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04

View File

@ -1493,7 +1493,10 @@ Selection::remove (const TrackViewList& t)
PresentationInfo::ChangeSuspender cs;
for (TrackSelection::const_iterator i = t.begin(); i != t.end(); ++i) {
std::shared_ptr<Stripable> s = (*i)->stripable ();
std::shared_ptr<Stripable> s;
if (!dynamic_cast<AutomationTimeAxisView*> (*i)) {
s = (*i)->stripable ();
}
std::shared_ptr<AutomationControl> c = (*i)->control ();
selection.remove (s, c);
}