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.cc27
1 files changed, 15 insertions, 12 deletions
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc
index c21b5254b4..9fa3a904b1 100644
--- a/libs/ardour/session.cc
+++ b/libs/ardour/session.cc
@@ -1476,20 +1476,23 @@ Session::locations_changed ()
void
Session::_locations_changed (const Locations::LocationList& locations)
{
- /* There was some mass-change in the Locations object.
+ /* There was some mass-change in the Locations object.
- 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.
- */
-
- {
- 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);
- }
- }
+ 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.
+ */
+ 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);
+ update_skips (NULL, false);
}
void