summaryrefslogtreecommitdiff
path: root/libs/ardour/session.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/session.cc')
-rw-r--r--libs/ardour/session.cc16
1 files changed, 12 insertions, 4 deletions
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc
index 52c9506c54..6f897a062b 100644
--- a/libs/ardour/session.cc
+++ b/libs/ardour/session.cc
@@ -1474,10 +1474,18 @@ Session::_locations_changed (const Locations::LocationList& locations)
We might be re-adding a location here but it doesn't actually matter
for all the locations that the Session takes an interest in.
*/
-
- for (Locations::LocationList::const_iterator i = locations.begin(); i != locations.end(); ++i) {
- location_added (*i);
- }
+ loop_update_connections.drop_connections ();
+ mark_update_connections.drop_connections ();
+ skip_update_connections.drop_connections ();
+
+ {
+ PBD::Unwinder<bool> protect_ignore_skip_updates (_ignore_skips_updates, true);
+ for (Locations::LocationList::const_iterator i = locations.begin(); i != locations.end(); ++i) {
+ location_added (*i);
+ }
+ }
+
+ update_skips (NULL, false);
}
void