Disable spill when target-bus is removed #8014

Individual mixer-strip already revert to default display when
the send vanishes. This also resets the mixer view.
This commit is contained in:
Robin Gareus 2020-04-15 20:21:27 +02:00
parent e20f74dcf1
commit 250da353d4
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04
2 changed files with 23 additions and 9 deletions

View File

@ -3477,16 +3477,27 @@ void
Mixer_UI::show_spill (boost::shared_ptr<Stripable> s)
{
boost::shared_ptr<Stripable> ss = spilled_strip.lock();
if (ss != s) {
spilled_strip = s;
show_spill_change (s); /* EMIT SIGNAL */
if (s) {
_group_tabs->hide ();
} else {
_group_tabs->show ();
}
redisplay_track_list ();
if (ss == s) {
return;
}
spilled_strip = s;
_spill_gone_connection.disconnect ();
show_spill_change (s); /* EMIT SIGNAL */
if (s) {
s->DropReferences.connect (_spill_gone_connection, invalidator (*this), boost::bind (&Mixer_UI::spill_nothing, this), gui_context());
_group_tabs->hide ();
} else {
_group_tabs->show ();
}
redisplay_track_list ();
}
void
Mixer_UI::spill_nothing ()
{
show_spill (boost::shared_ptr<Stripable> ());
}
bool

View File

@ -431,6 +431,9 @@ private:
RouteProcessorSelection _selection;
AxisViewSelection _axis_targets;
void spill_nothing ();
PBD::ScopedConnection _spill_gone_connection;
void vca_assign (boost::shared_ptr<ARDOUR::VCA>);
void vca_unassign (boost::shared_ptr<ARDOUR::VCA>);