diff --git a/libs/ardour/session_transport.cc b/libs/ardour/session_transport.cc index e61e8fee59..6d9f99127a 100644 --- a/libs/ardour/session_transport.cc +++ b/libs/ardour/session_transport.cc @@ -349,10 +349,9 @@ Session::locate (samplepos_t target_sample, bool with_roll, bool with_flush, boo TFSM_EVENT (TransportFSM::ButlerRequired); } else { TFSM_EVENT (TransportFSM::LocateDone); + loop_changing = false; } - loop_changing = false; - _send_timecode_update = true; if (with_mmc) { @@ -713,6 +712,7 @@ Session::butler_completed_transport_work () post_locate (); ptw = PostTransportWork (ptw & ~PostTransportLocate); set_post_transport_work (ptw); + loop_changing = false; TFSM_EVENT (TransportFSM::LocateDone); } @@ -1564,7 +1564,7 @@ Session::non_realtime_stop (bool abort, int on_entry, bool& finished) if (ptw & (PostTransportClearSubstate|PostTransportStop)) { unset_play_range (); - if (!Config->get_loop_is_mode()) { + if (!loop_changing && !Config->get_loop_is_mode()) { unset_play_loop (); } }