add a new name for the region-layering-editor-action that tells us we were started from a context menu; dialog does not position correctly on first show... grrr. should end fix of #4588, mostly

git-svn-id: svn://localhost/ardour2/branches/3.0@11083 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2011-12-26 23:38:56 +00:00
parent e6e0476d5e
commit 75a3964c10
3 changed files with 17 additions and 7 deletions

View File

@ -1819,7 +1819,7 @@ Editor::add_region_context_items (Menu_Helpers::MenuList& edit_items, boost::sha
edit_items.push_back (*_popup_region_menu_item);
if (track->playlist()->count_regions_at (mouse) > 1 && (layering_order_editor == 0 || !layering_order_editor->is_visible ())) {
edit_items.push_back (*manage (_region_actions->get_action ("choose-top-region")->create_menu_item ()));
edit_items.push_back (*manage (_region_actions->get_action ("choose-top-region-context-menu")->create_menu_item ()));
}
edit_items.push_back (SeparatorElem());
}
@ -5356,9 +5356,15 @@ Editor::show_editor_list (bool yn)
}
void
Editor::change_region_layering_order ()
Editor::change_region_layering_order (bool from_context_menu)
{
framepos_t const position = get_preferred_edit_position ();
framepos_t position;
if (from_context_menu) {
position = event_frame (&context_click_event, 0, 0);
} else {
position = get_preferred_edit_position ();
}
if (!clicked_routeview) {
if (layering_order_editor) {
@ -5380,7 +5386,8 @@ Editor::change_region_layering_order ()
}
if (layering_order_editor == 0) {
layering_order_editor = new RegionLayeringOrderEditor(*this);
layering_order_editor = new RegionLayeringOrderEditor (*this);
layering_order_editor->set_position (WIN_POS_MOUSE);
}
layering_order_editor->set_context (clicked_routeview->name(), _session, pl, position);
@ -5391,7 +5398,7 @@ void
Editor::update_region_layering_order_editor ()
{
if (layering_order_editor && layering_order_editor->is_visible ()) {
change_region_layering_order ();
change_region_layering_order (true);
}
}

View File

@ -1484,7 +1484,10 @@ Editor::register_region_actions ()
sigc::bind (sigc::mem_fun (*this, &Editor::align_regions_relative), ARDOUR::SyncPoint)
);
Glib::RefPtr<Action> a = 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..."), sigc::bind (sigc::mem_fun (*this, &Editor::change_region_layering_order), false));
a->set_accel_group (get_accel_group ());
a = reg_sens (_region_actions, "choose-top-region-context-menu", _("Choose Top..."), sigc::bind (sigc::mem_fun (*this, &Editor::change_region_layering_order), true));
a->set_accel_group (get_accel_group ());
_all_region_actions_sensitized = true;

View File

@ -15,7 +15,7 @@ using namespace Gtk;
using namespace ARDOUR;
RegionLayeringOrderEditor::RegionLayeringOrderEditor (PublicEditor& pe)
: ArdourWindow (pe, _("RegionLayeringOrderEditor"))
: ArdourWindow (_("RegionLayeringOrderEditor"))
, playlist ()
, position ()
, in_row_change (false)