diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2010-01-05 14:57:01 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2010-01-05 14:57:01 +0000 |
commit | 27eb926d3fe86517fb83af19ae5c3acc737a677b (patch) | |
tree | 8468e564b25127585facf3ee16a4f4e408af088f /gtk2_ardour | |
parent | 6d3dfd0ded3512377e8a3b112bac3251db079667 (diff) |
fix some issues with context menu management
git-svn-id: svn://localhost/ardour2/branches/3.0@6456 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/midi_time_axis.cc | 4 | ||||
-rw-r--r-- | gtk2_ardour/route_time_axis.cc | 19 | ||||
-rw-r--r-- | gtk2_ardour/time_axis_view.cc | 2 |
3 files changed, 15 insertions, 10 deletions
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<Evoral::Parameter, RouteAutomationNode*>::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<Gtk::CheckMenuItem*>(&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"); |