summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLen Ovens <len@ovenwerks.net>2020-04-12 18:41:06 -0700
committerLen Ovens <len@ovenwerks.net>2020-04-12 18:41:06 -0700
commit3a3925433836306e3c00751f472978cec4976b8a (patch)
tree52bc52534dfac482e0ba8f4a3425af30f1882835
parent0f806d1322c2d08b6877194bfdb49dccad4ca145 (diff)
Changing Foldback bus with show sends enabled broken
leaves mixer in fanout to old bus turn show sends off change bus turn show sends on for user expected result
-rw-r--r--gtk2_ardour/foldback_strip.cc22
1 files changed, 21 insertions, 1 deletions
diff --git a/gtk2_ardour/foldback_strip.cc b/gtk2_ardour/foldback_strip.cc
index 055f57b5df..931c5f99d4 100644
--- a/gtk2_ardour/foldback_strip.cc
+++ b/gtk2_ardour/foldback_strip.cc
@@ -363,7 +363,7 @@ FoldbackStrip::init ()
insert_box->show ();
insert_box->set_session (_session);
insert_box->set_width (Wide);
- insert_box->set_size_request (PX_SCALE(_width + 34), PX_SCALE(100));
+ insert_box->set_size_request (PX_SCALE(_width + 34), PX_SCALE(160));
mute_solo_table.set_homogeneous (true);
mute_solo_table.set_spacings (2);
@@ -532,6 +532,16 @@ FoldbackStrip::update_fb_level_control ()
void
FoldbackStrip::set_route (boost::shared_ptr<Route> rt)
{
+ bool sh_snd = _showing_sends;
+ if (_route) {
+ // before we do anything unset show sends
+ Mixer_UI::instance()->show_spill (boost::shared_ptr<ARDOUR::Stripable>());
+ BusSendDisplayChanged (boost::shared_ptr<Route> ()); /* EMIT SIGNAL */
+ _showing_sends = false;
+ _show_sends_button.set_active (false);
+ send_blink_connection.disconnect ();
+ }
+
/// FIX NO route
if (!rt) {
clear_send_box ();
@@ -599,6 +609,16 @@ FoldbackStrip::set_route (boost::shared_ptr<Route> rt)
show ();
set_button_names ();
+
+ if (sh_snd) {
+ // if last route had shows sends let it remain active
+ Mixer_UI::instance()->show_spill (_route);
+ BusSendDisplayChanged (_route); /* EMIT SIGNAL */
+ _showing_sends = true;
+ _show_sends_button.set_active (true);
+ send_blink_connection = Timers::blink_connect (sigc::mem_fun (*this, &FoldbackStrip::send_blink));
+ }
+
}
// predicate for sort call in get_sorted_stripables