summaryrefslogtreecommitdiff
path: root/libs/ardour/session_transport.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2019-11-23 15:52:05 -0700
committerPaul Davis <paul@linuxaudiosystems.com>2019-11-23 15:52:05 -0700
commitd39f19f559a71cf7ce6be4468f33a0533f175166 (patch)
treef7c6d5c001708adb6bcf140b0e73b2d6f8f3ba15 /libs/ardour/session_transport.cc
parentdbf06eb2cfd361590e0988388bfda293fca909bc (diff)
fix incorrect removal of autoloop event when loop bounds are changed while looping
Diffstat (limited to 'libs/ardour/session_transport.cc')
-rw-r--r--libs/ardour/session_transport.cc6
1 files changed, 3 insertions, 3 deletions
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 ();
}
}