diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc
index 7eb92cc221..c60dc3db4a 100644
--- a/gtk2_ardour/editor_drag.cc
+++ b/gtk2_ardour/editor_drag.cc
@@ -5704,7 +5704,7 @@ SelectionDrag::motion (GdkEvent* event, bool first_move)
}
if (first_move) {
- if (Config->get_edit_mode() == RippleAll && Config->get_interview_editing()) {
+ if (Config->get_edit_mode() == RippleAll && !Config->get_interview_editing()) {
_editor->selection->set (_editor->get_track_views());
}
_track_selection_at_start = _editor->selection->tracks;
@@ -5771,7 +5771,7 @@ SelectionDrag::motion (GdkEvent* event, bool first_move)
ArdourCanvas::Coord const top = grab_y();
ArdourCanvas::Coord const bottom = current_pointer_y();
- if ((Config->get_edit_mode() != RippleAll) && top >= 0 && bottom >= 0) {
+ if ((Config->get_edit_mode() != RippleAll || Config->get_interview_editing()) && top >= 0 && bottom >= 0) {
//first, find the tracks that are covered in the y range selection
for (TrackViewList::const_iterator i = all_tracks.begin(); i != all_tracks.end(); ++i) {
diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc
index adc757e682..6d32897119 100644
--- a/gtk2_ardour/editor_ops.cc
+++ b/gtk2_ardour/editor_ops.cc
@@ -9309,7 +9309,7 @@ bool
Editor::should_ripple () const
{
return (Config->get_edit_mode() == Ripple ||
- Config->get_edit_mode() == RippleAll);
+ (Config->get_edit_mode() == RippleAll && (selection->tracks.size() > 1 || !Config->get_interview_editing())));
}
void
diff --git a/gtk2_ardour/rc_option_editor.cc b/gtk2_ardour/rc_option_editor.cc
index d77397738b..8a0a9a7a9c 100644
--- a/gtk2_ardour/rc_option_editor.cc
+++ b/gtk2_ardour/rc_option_editor.cc
@@ -3234,6 +3234,20 @@ These settings will only take effect after %1 is restarted.\n\
lm->add (Manual, _("manual layering"));
add_option (_("Editor"), lm);
+ bo = new BoolOption (
+ "interview-editing",
+ _("Improve editing behavior for editing multi-track voice interviews"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_interview_editing),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_interview_editing)
+ );
+ add_option (_("Editor"), bo);
+ Gtkmm2ext::UI::instance()->set_tip (bo->tip_widget(),
+ _("When enabled, range selection while in Ripple All will not propagate across all tracks.\n"
+ "When disabled, range selection while in Ripple All will propagate across all tracks.\n"
+ "This setting only has effect when in Ripple All mode.")
+ );
+
+
add_option (_("Editor"), new OptionEditorHeading (_("Split/Separate")));
ComboOption *rras = new ComboOption (