diff options
-rw-r--r-- | gtk2_ardour/ardour.menus.in | 1 | ||||
-rw-r--r-- | gtk2_ardour/editor.cc | 8 | ||||
-rw-r--r-- | gtk2_ardour/editor_actions.cc | 2 | ||||
-rw-r--r-- | gtk2_ardour/editor_ops.cc | 17 | ||||
-rw-r--r-- | gtk2_ardour/mnemonic-us.bindings.in | 1 |
5 files changed, 19 insertions, 10 deletions
diff --git a/gtk2_ardour/ardour.menus.in b/gtk2_ardour/ardour.menus.in index cb1278af31..d292e6791b 100644 --- a/gtk2_ardour/ardour.menus.in +++ b/gtk2_ardour/ardour.menus.in @@ -184,7 +184,6 @@ <menuitem action='split-region'/> <menu action="SeparateMenu"> <menuitem action='separate-under-region'/> - <menuitem action='editor-separate'/> <menuitem action='separate-from-loop'/> <menuitem action='separate-from-punch'/> <separator/> diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index 7107040db1..da1c25f374 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -4638,7 +4638,13 @@ Editor::get_preferred_edit_position (bool ignore_playhead, bool from_context_men switch (ep) { case EditAtPlayhead: - where = _session->audible_frame(); + if (_dragging_playhead) { + if (!mouse_frame (where, ignored)) { + /* XXX not right but what can we do ? */ + return 0; + } + } else + where = _session->audible_frame(); DEBUG_TRACE (DEBUG::CutNPaste, string_compose ("GPEP: use playhead @ %1\n", where)); break; diff --git a/gtk2_ardour/editor_actions.cc b/gtk2_ardour/editor_actions.cc index d6fcf7d27f..8c7c74858b 100644 --- a/gtk2_ardour/editor_actions.cc +++ b/gtk2_ardour/editor_actions.cc @@ -1989,7 +1989,7 @@ Editor::register_region_actions () reg_sens (_region_actions, "set-region-sync-position", _("Set Sync Position"), sigc::mem_fun (*this, &Editor::set_region_sync_position)); reg_sens (_region_actions, "place-transient", _("Place Transient"), sigc::mem_fun (*this, &Editor::place_transient)); - reg_sens (_region_actions, "split-region", _("Split"), sigc::mem_fun (*this, &Editor::split_region)); + reg_sens (_region_actions, "split-region", _("Split/Separate"), sigc::mem_fun (*this, &Editor::split_region)); reg_sens (_region_actions, "trim-front", _("Trim Start at Edit Point"), sigc::mem_fun (*this, &Editor::trim_region_front)); reg_sens (_region_actions, "trim-back", _("Trim End at Edit Point"), sigc::mem_fun (*this, &Editor::trim_region_back)); diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index 4ce5d09f3b..ec196874d6 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -5794,20 +5794,25 @@ Editor::set_playhead_cursor () void Editor::split_region () { + //if a range is selected, separate it if ( !selection->time.empty()) { separate_regions_between (selection->time); return; } - RegionSelection rs = get_regions_from_selection_and_edit_point (); + //if no range was selected, try to find some regions to split + if (current_mouse_mode() == MouseObject) { //don't try this for Internal Edit, Stretch, Draw, etc. + + RegionSelection rs = get_regions_from_selection_and_edit_point (); - framepos_t where = get_preferred_edit_position (); + framepos_t where = get_preferred_edit_position (); - if (rs.empty()) { - return; - } + if (rs.empty()) { + return; + } - split_regions_at (where, rs); + split_regions_at (where, rs); + } } struct EditorOrderRouteSorter { diff --git a/gtk2_ardour/mnemonic-us.bindings.in b/gtk2_ardour/mnemonic-us.bindings.in index b2aa557bfa..4055129e47 100644 --- a/gtk2_ardour/mnemonic-us.bindings.in +++ b/gtk2_ardour/mnemonic-us.bindings.in @@ -182,7 +182,6 @@ This mode provides many different operations on both regions and control points, @sess|Common/Save|<@PRIMARY@>s|save session @sess|Main/Snapshot|<@PRIMARY@><@TERTIARY@>s|snapshot session @trans|Editor/track-solo-toggle|<@SECONDARY@>s|toggle track solo status -@-group|Editor/editor-separate|<@PRIMARY@><@SECONDARY@>s|some text @mmode|MouseMode/set-mouse-mode-draw|d|note-draw mode @rop|Region/duplicate-region|<@SECONDARY@>d|duplicate region (once) @rop|Region/multi-duplicate-region|<@TERTIARY@>d|duplicate region (multi) |