diff --git a/gtk2_ardour/route_time_axis.cc b/gtk2_ardour/route_time_axis.cc index c9cdb733dc..dd8b2a405e 100644 --- a/gtk2_ardour/route_time_axis.cc +++ b/gtk2_ardour/route_time_axis.cc @@ -1740,6 +1740,8 @@ RouteTimeAxisView::color_handler () void RouteTimeAxisView::toggle_automation_track (const Evoral::Parameter& param) { + assert (param.type() != PluginAutomation); + boost::shared_ptr track = automation_child (param); Gtk::CheckMenuItem* menu = automation_child_menu_item (param); @@ -2145,10 +2147,12 @@ RouteTimeAxisView::add_processor_to_subplugin_menu (boost::weak_ptr p } - boost::shared_ptr atav = automation_child (*i); + boost::shared_ptr atav = pan->view; bool visible; if (atav && atav->get_gui_property ("visible", visible)) { mitem->set_active(true); + } else { + mitem->set_active(false); } mitem->signal_toggled().connect (sigc::bind (sigc::mem_fun(*this, &RouteTimeAxisView::processor_menu_item_toggled), rai, pan)); diff --git a/gtk2_ardour/stripable_time_axis.cc b/gtk2_ardour/stripable_time_axis.cc index aa9d961d6c..295de5f3ba 100644 --- a/gtk2_ardour/stripable_time_axis.cc +++ b/gtk2_ardour/stripable_time_axis.cc @@ -73,9 +73,14 @@ StripableTimeAxisView::add_automation_child (Evoral::Parameter param, boost::sha add_child (track); - track->Hiding.connect (sigc::bind (sigc::mem_fun (*this, &StripableTimeAxisView::automation_track_hidden), param)); - - _automation_tracks[param] = track; + if (param.type() != PluginAutomation) { + /* PluginAutomation is handled by + * - RouteTimeAxisView::processor_automation_track_hidden + * - RouteTimeAxisView::processor_automation + */ + track->Hiding.connect (sigc::bind (sigc::mem_fun (*this, &StripableTimeAxisView::automation_track_hidden), param)); + _automation_tracks[param] = track; + } /* existing state overrides "show" argument */ bool visible; @@ -155,6 +160,7 @@ StripableTimeAxisView::update_mute_track_visibility () Gtk::CheckMenuItem* StripableTimeAxisView::automation_child_menu_item (Evoral::Parameter param) { + assert (param.type() != PluginAutomation); ParameterMenuMap::iterator i = _main_automation_menu_map.find (param); if (i != _main_automation_menu_map.end()) { return i->second; @@ -186,6 +192,7 @@ StripableTimeAxisView::automation_track_hidden (Evoral::Parameter param) boost::shared_ptr StripableTimeAxisView::automation_child(Evoral::Parameter param) { + assert (param.type() != PluginAutomation); AutomationTracks::iterator i = _automation_tracks.find(param); if (i != _automation_tracks.end()) { return i->second;