diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h index e45036a094..8d5e439129 100644 --- a/libs/ardour/ardour/session.h +++ b/libs/ardour/ardour/session.h @@ -1196,9 +1196,7 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop void sync_locations_to_skips (); void _sync_locations_to_skips (); - PBD::ScopedConnectionList loop_update_connections; - PBD::ScopedConnectionList mark_update_connections; - PBD::ScopedConnectionList skip_update_connections; + bool _ignore_skips_updates; PBD::ScopedConnectionList punch_connections; void auto_punch_start_changed (Location *); diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index 1c6b08b95d..c21b5254b4 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -208,6 +208,7 @@ Session::Session (AudioEngine &eng, , _post_transport_work (0) , cumulative_rf_motion (0) , rf_scale (1.0) + , _ignore_skips_updates (false) , _locations (new Locations (*this)) , step_speed (0) , outbound_mtc_timecode_frame (0) @@ -1325,11 +1326,16 @@ Session::update_marks (Location*) void Session::update_skips (Location* loc, bool consolidate) { + if (_ignore_skips_updates) { + return; + } + Locations::LocationList skips; - if (consolidate) { - consolidate_skips (loc); - } + if (consolidate) { + PBD::Unwinder uw (_ignore_skips_updates, true); + consolidate_skips (loc); + } sync_locations_to_skips ();