disable follow-edits with external sync #6577
authorRobin Gareus <robin@gareus.org>
Sun, 18 Oct 2015 00:01:45 +0000 (02:01 +0200)
committerRobin Gareus <robin@gareus.org>
Sun, 18 Oct 2015 00:03:41 +0000 (02:03 +0200)
gtk2_ardour/ardour_ui.cc
gtk2_ardour/editor_drag.cc
gtk2_ardour/editor_mouse.cc
gtk2_ardour/editor_ops.cc

index 9f9ae71fed25375f795e1f24a29d7ee41e5190aa..e29c1bbf8de49a4a73ec94d5c6453d451ce2b132 100644 (file)
@@ -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);
index d5466a1ed5d7cb7c8d10185ca688c8ab292fa778..90e4dc48e4ae82247c6418f55e9ce7640f757b0e 100644 (file)
@@ -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());
index 094afc2692e1d8c30256f78641f170cc9730eb4b..ccf63839e2cf369a2491ce5af46638c3cf458001 100644 (file)
@@ -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);
index 4e744abf5f83c59c6f1e665acb9806fae6b1dacf..5796b9586871d461f30966e28216db8104da815b 100644 (file)
@@ -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();
        }
 }