diff options
-rw-r--r-- | gtk2_ardour/vca_master_strip.cc | 17 | ||||
-rw-r--r-- | gtk2_ardour/vca_master_strip.h | 1 |
2 files changed, 17 insertions, 1 deletions
diff --git a/gtk2_ardour/vca_master_strip.cc b/gtk2_ardour/vca_master_strip.cc index e40dd96ba3..f0e7cfac90 100644 --- a/gtk2_ardour/vca_master_strip.cc +++ b/gtk2_ardour/vca_master_strip.cc @@ -168,6 +168,11 @@ VCAMasterStrip::VCAMasterStrip (Session* s, boost::shared_ptr<VCA> v) VCAMasterStrip::~VCAMasterStrip () { + if ((_session && !_session->deletion_in_progress()) && Mixer_UI::instance()->showing_vca_slaves_for (_vca)) { + /* cancel spill for this VCA */ + Mixer_UI::instance()->show_vca_slaves (boost::shared_ptr<VCA>()); + } + delete delete_dialog; delete context_menu; @@ -476,7 +481,7 @@ VCAMasterStrip::build_context_menu () context_menu = new Menu; MenuList& items = context_menu->items(); items.push_back (MenuElem (_("Rename"), sigc::mem_fun (*this, &VCAMasterStrip::start_name_edit))); - items.push_back (MenuElem (_("Remove"))); + items.push_back (MenuElem (_("Remove"), sigc::mem_fun (*this, &VCAMasterStrip::remove))); } void @@ -498,3 +503,13 @@ VCAMasterStrip::spill_change (boost::shared_ptr<VCA> vca) vertical_button.set_active_state (Gtkmm2ext::ExplicitActive); } } + +void +VCAMasterStrip::remove () +{ + if (!_session) { + return; + } + + _session->vca_manager().remove_vca (_vca); +} diff --git a/gtk2_ardour/vca_master_strip.h b/gtk2_ardour/vca_master_strip.h index 4734061987..a9636dfe69 100644 --- a/gtk2_ardour/vca_master_strip.h +++ b/gtk2_ardour/vca_master_strip.h @@ -94,6 +94,7 @@ class VCAMasterStrip : public AxisView, public Gtk::EventBox void build_context_menu (); void hide_confirmation (int); void self_delete (); + void remove (); }; |