* Note that we have forced the rule that selected regions and selected tracks are mutually exclusive
*/
RegionSelection
-Editor::get_regions_from_selection_and_mouse ()
+Editor::get_regions_from_selection_and_mouse (framepos_t pos)
{
RegionSelection regions;
if ( regions.empty() ) {
TrackViewList tracks = selection->tracks;
- if (_route_groups->all_group_active_button().get_active() && tracks.empty()) {
- /* tracks is empty (no track selected), and 'No Selection = All Tracks'
- * is enabled, so consider all tracks
- */
- tracks = track_views;
- }
-
if (!tracks.empty()) {
/* no region selected or entered, but some selected tracks:
* act on all regions on the selected tracks at the edit point
*/
- framepos_t const where = get_preferred_edit_position ();
- get_regions_at(regions, where, tracks);
+ get_regions_at(regions, pos, tracks);
}
}
void mouse_add_new_marker (framepos_t where, bool is_cd=false, bool is_xrun=false);
void split_regions_at (framepos_t, RegionSelection&);
void split_region_at_points (boost::shared_ptr<ARDOUR::Region>, ARDOUR::AnalysisFeatureList&, bool can_ferret, bool select_new = false);
- RegionSelection get_regions_from_selection_and_mouse ();
+ RegionSelection get_regions_from_selection_and_mouse (framepos_t);
protected:
void map_transport_state ();
void
RegionCutDrag::finished (GdkEvent*, bool)
{
+ framepos_t pos = _drags->current_pointer_frame();
+
line->hide ();
- RegionSelection rs = _editor->get_regions_from_selection_and_mouse ();
+ RegionSelection rs = _editor->get_regions_from_selection_and_mouse (pos);
if (rs.empty()) {
return;
}
- _editor->split_regions_at (_drags->current_pointer_frame(), rs);
+ _editor->split_regions_at (pos, rs);
}
void
virtual void snap_to_with_modifier (framepos_t &, GdkEvent const *, int32_t direction = 0, bool for_mark = false) = 0;
virtual void get_regions_at (RegionSelection &, framepos_t where, TrackViewList const &) const = 0;
- virtual RegionSelection get_regions_from_selection_and_mouse () = 0;
+ virtual RegionSelection get_regions_from_selection_and_mouse (framepos_t) = 0;
/// Singleton instance, set up by Editor::Editor()