summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2010-11-14 16:49:25 +0000
committerCarl Hetherington <carl@carlh.net>2010-11-14 16:49:25 +0000
commit1a9bd134d22f281d33271e99dbac6a6acc13913b (patch)
treee6e8e251ca9fdcba4c4f0fee1842f5a95653f4d5 /gtk2_ardour
parenta46af0460b0fdcc145c4dd282fa4fe071d4971fc (diff)
Fix crash on opening region menu.
git-svn-id: svn://localhost/ardour2/branches/3.0@8027 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/editor.cc7
-rw-r--r--gtk2_ardour/editor_actions.cc6
2 files changed, 9 insertions, 4 deletions
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc
index f77d9b935a..505a191323 100644
--- a/gtk2_ardour/editor.cc
+++ b/gtk2_ardour/editor.cc
@@ -1842,7 +1842,7 @@ Editor::add_region_context_items (Menu_Helpers::MenuList& edit_items, bool multi
edit_items.push_back (*_popup_region_menu_item);
if (multiple_regions_at_position && (layering_order_editor == 0 || !layering_order_editor->is_visible ())) {
- edit_items.push_back (action_menu_item ("choose-top-region"));
+ edit_items.push_back (*manage (_region_actions->get_action ("choose-top-region")->create_menu_item ()));
}
edit_items.push_back (SeparatorElem());
}
@@ -5507,6 +5507,9 @@ Editor::setup_fade_images ()
Gtk::MenuItem&
Editor::action_menu_item (std::string const & name)
{
- return *manage (editor_actions->get_action(name)->create_menu_item ());
+ Glib::RefPtr<Action> a = editor_actions->get_action (name);
+ assert (a);
+
+ return *manage (a->create_menu_item ());
}
diff --git a/gtk2_ardour/editor_actions.cc b/gtk2_ardour/editor_actions.cc
index d40e4766ee..d6ba57e1ae 100644
--- a/gtk2_ardour/editor_actions.cc
+++ b/gtk2_ardour/editor_actions.cc
@@ -1275,11 +1275,12 @@ Editor::toggle_internal_editing ()
/* Convenience functions to slightly reduce verbosity below */
-static void
+static RefPtr<Action>
reg_sens (RefPtr<ActionGroup> group, char const * name, char const * label, sigc::slot<void> slot)
{
RefPtr<Action> act = ActionManager::register_action (group, name, label, slot);
ActionManager::session_sensitive_actions.push_back (act);
+ return act;
}
static void
@@ -1547,7 +1548,8 @@ Editor::register_region_actions ()
sigc::bind (sigc::mem_fun (*this, &Editor::align_regions_relative), ARDOUR::SyncPoint)
);
- reg_sens (_region_actions, "choose-top-region", _("Choose Top..."), mem_fun (*this, &Editor::change_region_layering_order));
+ Glib::RefPtr<Action> a = reg_sens (_region_actions, "choose-top-region", _("Choose Top..."), mem_fun (*this, &Editor::change_region_layering_order));
+ a->set_accel_group (get_accel_group ());
_all_region_actions_sensitized = true;