diff options
-rw-r--r-- | gtk2_ardour/mixer_strip.h | 10 | ||||
-rw-r--r-- | gtk2_ardour/processor_box.cc | 6 |
2 files changed, 13 insertions, 3 deletions
diff --git a/gtk2_ardour/mixer_strip.h b/gtk2_ardour/mixer_strip.h index b547e54852..651c9eace9 100644 --- a/gtk2_ardour/mixer_strip.h +++ b/gtk2_ardour/mixer_strip.h @@ -98,6 +98,14 @@ class MixerStrip : public RouteUI, public Gtk::EventBox void set_route (boost::shared_ptr<ARDOUR::Route>); void set_button_names (); void show_send (boost::shared_ptr<ARDOUR::Send>); + void revert_to_default_display (); + + /** @return the delivery that is being edited using our fader; it will be the + * last send passed to ::show_send, or our route's main out delivery. + */ + boost::shared_ptr<ARDOUR::Delivery> current_delivery () const { + return _current_delivery; + } bool mixer_owned () const { return _mixer_owned; @@ -272,8 +280,6 @@ class MixerStrip : public RouteUI, public Gtk::EventBox void set_current_delivery (boost::shared_ptr<ARDOUR::Delivery>); boost::shared_ptr<ARDOUR::Delivery> _current_delivery; - void revert_to_default_display (); - void drop_send (); PBD::ScopedConnection send_gone_connection; diff --git a/gtk2_ardour/processor_box.cc b/gtk2_ardour/processor_box.cc index 7795035ce0..93a1d14bed 100644 --- a/gtk2_ardour/processor_box.cc +++ b/gtk2_ardour/processor_box.cc @@ -1608,7 +1608,11 @@ ProcessorBox::toggle_edit_processor (boost::shared_ptr<Processor> processor) } if (_parent_strip) { - _parent_strip->show_send (send); + if (boost::dynamic_pointer_cast<Send> (_parent_strip->current_delivery()) == send) { + _parent_strip->revert_to_default_display (); + } else { + _parent_strip->show_send (send); + } } } else if ((retrn = boost::dynamic_pointer_cast<Return> (processor)) != 0) { |