diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index 9f9ae71fed..e29c1bbf8d 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -2108,7 +2108,7 @@ ARDOUR_UI::toggle_roll (bool with_abort, bool roll_out_of_bounded_mode) if (affect_transport) { if (rolling) { _session->request_stop (with_abort, true); - } else { + } else if (!_session->config.get_external_sync()) { if (UIConfiguration::instance().get_follow_edits() && ( editor->get_selection().time.front().start == _session->transport_frame() ) ) { //if playhead is exactly at the start of a range, we can assume it was placed there by follow_edits _session->request_play_range (&editor->get_selection().time, true); _session->set_requested_return_frame( editor->get_selection().time.front().start ); //force an auto-return here @@ -2286,7 +2286,7 @@ ARDOUR_UI::map_transport_state () auto_loop_button.set_active (false); } - if (UIConfiguration::instance().get_follow_edits()) { + if (UIConfiguration::instance().get_follow_edits() && !_session->config.get_external_sync()) { /* light up both roll and play-selection if they are joined */ roll_button.set_active (true); play_selection_button.set_active (true); diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc index d5466a1ed5..90e4dc48e4 100644 --- a/gtk2_ardour/editor_drag.cc +++ b/gtk2_ardour/editor_drag.cc @@ -4954,7 +4954,7 @@ SelectionDrag::finished (GdkEvent* event, bool movement_occurred) if (s) { if (s->get_play_range() && s->transport_rolling()) { s->request_play_range (&_editor->selection->time, true); - } else { + } else if (!s->config.get_external_sync()) { if (UIConfiguration::instance().get_follow_edits() && !s->transport_rolling()) { if (_operation == SelectionEndTrim) _editor->maybe_locate_with_edit_preroll( _editor->get_selection().time.end_frame()); diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc index 094afc2692..ccf63839e2 100644 --- a/gtk2_ardour/editor_mouse.cc +++ b/gtk2_ardour/editor_mouse.cc @@ -1138,7 +1138,7 @@ Editor::button_press_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemTyp } //not rolling, range mode click + join_play_range : locate the PH here - if ( !_drags->active () && _session && !_session->transport_rolling() && ( effective_mouse_mode() == MouseRange ) && UIConfiguration::instance().get_follow_edits() ) { + if ( !_drags->active () && _session && !_session->transport_rolling() && ( effective_mouse_mode() == MouseRange ) && UIConfiguration::instance().get_follow_edits() && !_session->config.get_external_sync() ) { framepos_t where = canvas_event_sample (event); snap_to(where); _session->request_locate (where, false); diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index 4e744abf5f..5796b95868 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -2537,7 +2537,7 @@ Editor::get_preroll () void Editor::maybe_locate_with_edit_preroll ( framepos_t location ) { - if ( _session->transport_rolling() || !UIConfiguration::instance().get_follow_edits() || _ignore_follow_edits ) + if ( _session->transport_rolling() || !UIConfiguration::instance().get_follow_edits() || _ignore_follow_edits || _session->config.get_external_sync() ) return; location -= get_preroll(); @@ -6097,7 +6097,7 @@ Editor::set_playhead_cursor () } } - if (UIConfiguration::instance().get_follow_edits()) { + if (UIConfiguration::instance().get_follow_edits() && !_session->config.get_external_sync()) { cancel_time_selection(); } }