From f7abe8dacd7db71027898e6db63505c670ea34f0 Mon Sep 17 00:00:00 2001 From: Ben Loftis Date: Sat, 14 May 2022 14:01:41 -0500 Subject: [PATCH] fix: RegionMotionDrag actions are always rippling to other tracks * if we aren't in RippleAll, you should only ripple the regions on the same track as the grabbed region --- gtk2_ardour/editor_drag.cc | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc index 912e4dd43c..29e76c454d 100644 --- a/gtk2_ardour/editor_drag.cc +++ b/gtk2_ardour/editor_drag.cc @@ -1027,13 +1027,20 @@ RegionMotionDrag::collect_ripple_views () _editor->get_regionviews_at_or_after (_primary->region()->position(), copy); + TimeAxisView *primary_tav = &_primary->get_time_axis_view(); + for (RegionSelection::reverse_iterator i = copy.rbegin(); i != copy.rend(); ++i) { - if (!_editor->selection->regions.contains (*i)) { - _views.push_back (DraggingView (*i, this, &(*i)->get_time_axis_view())); + TimeAxisView *tav = &(*i)->get_time_axis_view(); + if (_editor->should_ripple_all() || tav == primary_tav) { + if (!_editor->selection->regions.contains (*i)) { + _views.push_back (DraggingView (*i, this, &(*i)->get_time_axis_view())); + } } } - _editor->get_markers_to_ripple (_primary->region()->playlist(), _primary->region()->position(), ripple_markers); + if (_editor->should_ripple_all()) { + _editor->get_markers_to_ripple (_primary->region()->playlist(), _primary->region()->position(), ripple_markers); + } } void