summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2010-01-05 14:57:01 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2010-01-05 14:57:01 +0000
commit27eb926d3fe86517fb83af19ae5c3acc737a677b (patch)
tree8468e564b25127585facf3ee16a4f4e408af088f /gtk2_ardour
parent6d3dfd0ded3512377e8a3b112bac3251db079667 (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.cc4
-rw-r--r--gtk2_ardour/route_time_axis.cc19
-rw-r--r--gtk2_ardour/time_axis_view.cc2
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");