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 (