add a new name for the region-layering-editor-action that tells us we were started...
authorPaul Davis <paul@linuxaudiosystems.com>
Mon, 26 Dec 2011 23:38:56 +0000 (23:38 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Mon, 26 Dec 2011 23:38:56 +0000 (23:38 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@11083 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/editor.cc
gtk2_ardour/editor_actions.cc
gtk2_ardour/region_layering_order_editor.cc

index d4e0e60ef80e1e3da441f7f08f9a9433562fec48..fa3ea175ceb48ee8c974199e8a39ed58e6094237 100644 (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);
        }
 }
 
index a149dba7963e22b8bc14d76806103d6eceb33227..efb78c48cef8301ac18a89aeae7332d6e83b87c8 100644 (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;
index b0df691ca7c73d9993aec1f930e61ab8dd597796..11882656a1c33632603a74026bb76c8bfc75d6ba 100644 (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)