diff --git a/gtk2_ardour/midi_time_axis.cc b/gtk2_ardour/midi_time_axis.cc index 3b759867c8..4362b53d6a 100644 --- a/gtk2_ardour/midi_time_axis.cc +++ b/gtk2_ardour/midi_time_axis.cc @@ -322,9 +322,7 @@ MidiTimeAxisView::build_def_channel_menu () { using namespace Menu_Helpers; - if (default_channel_menu == 0) { - default_channel_menu = manage (new Menu ()); - } + default_channel_menu = manage (new Menu ()); uint8_t defchn = midi_track()->default_channel(); MenuList& def_channel_items = default_channel_menu->items(); diff --git a/gtk2_ardour/route_time_axis.cc b/gtk2_ardour/route_time_axis.cc index 754f0f9381..f25bc47bce 100644 --- a/gtk2_ardour/route_time_axis.cc +++ b/gtk2_ardour/route_time_axis.cc @@ -427,26 +427,31 @@ RouteTimeAxisView::build_automation_action_menu () automation_items.push_back (MenuElem (_("Hide all automation"), sigc::mem_fun(*this, &RouteTimeAxisView::hide_all_automation))); - if (subplugin_menu.get_attach_widget()) - subplugin_menu.detach(); + if (subplugin_menu.gobj()) { + /* this will break if the underlying GTK menu has never been set up, hence + the if() above. we have to do this + */ + if (subplugin_menu.get_attach_widget()) { + subplugin_menu.detach(); + } - automation_items.push_back (MenuElem (_("Plugins"), subplugin_menu)); + automation_items.push_back (MenuElem (_("Plugins..."), subplugin_menu)); + } else { + automation_items.push_back (MenuElem (_("Plugins"))); + } automation_items.back().set_sensitive (!subplugin_menu.items().empty()); map::iterator i; + for (i = _automation_tracks.begin(); i != _automation_tracks.end(); ++i) { automation_items.push_back (SeparatorElem()); - delete i->second->menu_item; - automation_items.push_back(CheckMenuElem (_route->describe_parameter(i->second->param), sigc::bind (sigc::mem_fun(*this, &RouteTimeAxisView::toggle_automation_track), i->second->param))); i->second->menu_item = static_cast(&automation_items.back()); - i->second->menu_item->set_active(show_automation(i->second->param)); - //i->second->menu_item->set_active(false); } } diff --git a/gtk2_ardour/time_axis_view.cc b/gtk2_ardour/time_axis_view.cc index 4809d9fedd..c797389b87 100644 --- a/gtk2_ardour/time_axis_view.cc +++ b/gtk2_ardour/time_axis_view.cc @@ -664,6 +664,8 @@ TimeAxisView::build_display_menu () { using namespace Menu_Helpers; + delete display_menu; + display_menu = new Menu; display_menu->set_name ("ArdourContextMenu");