diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index 62ef39ab33..ed598d8cab 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -4684,6 +4684,28 @@ Editor::get_regions_from_selection_and_edit_point () return regions; } +RegionSelection +Editor::get_regions_from_selection_and_playhead () +{ + RegionSelection regions; + TrackViewList involved_tracks; + + RegionSelection& selected_regions = selection->regions; + + if (!selected_regions.empty() ) { + + RegionSelection::iterator iter = selected_regions.begin (); + for (; iter != selected_regions.end (); ++iter) { + involved_tracks.push_back ( &(*iter)->get_time_axis_view() ); + } + } + + framepos_t where = get_playhead_position (); + get_regions_at(regions, where, involved_tracks /*if empty apply to all*/); + + return regions; +} + /** Get regions using the following method: * * Make a region list using: diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index f1ba7d7bd5..db3b07271f 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -2057,6 +2057,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void get_regions_after (RegionSelection&, framepos_t where, const TrackViewList& ts) const; RegionSelection get_regions_from_selection_and_edit_point (); + RegionSelection get_regions_from_selection_and_playhead (); RegionSelection get_regions_from_selection_and_entered (); void start_updating_meters (); diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index 2054f20793..bc9e0ddb51 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -5709,9 +5709,8 @@ Editor::split_region () return; } - RegionSelection rs = get_regions_from_selection_and_edit_point (); - - framepos_t where = get_preferred_edit_position (); + RegionSelection rs = get_regions_from_selection_and_playhead (); + framepos_t where = get_playhead_position (); if (rs.empty()) { return;