summaryrefslogtreecommitdiff
path: root/libs/ardour/playlist.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/playlist.cc')
-rw-r--r--libs/ardour/playlist.cc30
1 files changed, 18 insertions, 12 deletions
diff --git a/libs/ardour/playlist.cc b/libs/ardour/playlist.cc
index 3301fe9f9e..2e96dee063 100644
--- a/libs/ardour/playlist.cc
+++ b/libs/ardour/playlist.cc
@@ -1822,6 +1822,7 @@ Playlist::regions_at (framepos_t frame)
for (RegionList::iterator i = rlist->begin(); i != rlist->end(); ) {
RegionList::iterator tmp = i;
+
++tmp;
if ((*i)->muted()) {
@@ -2047,23 +2048,25 @@ Playlist::find_next_region (framepos_t frame, RegionPoint point, int dir)
boost::shared_ptr<Region> r = (*i);
frameoffset_t distance;
+ const framepos_t first_frame = r->first_frame();
+ const framepos_t last_frame = r->last_frame();
- if (r->first_frame() > frame) {
+ if (first_frame > frame) {
- distance = r->first_frame() - frame;
+ distance = first_frame - frame;
if (distance < closest) {
- ret = r->first_frame();
+ ret = first_frame;
closest = distance;
}
}
- if (r->last_frame () > frame) {
+ if (last_frame > frame) {
- distance = r->last_frame () - frame;
+ distance = last_frame - frame;
if (distance < closest) {
- ret = r->last_frame ();
+ ret = last_frame;
closest = distance;
}
}
@@ -2075,23 +2078,25 @@ Playlist::find_next_region (framepos_t frame, RegionPoint point, int dir)
boost::shared_ptr<Region> r = (*i);
frameoffset_t distance;
+ const framepos_t first_frame = r->first_frame();
+ const framepos_t last_frame = r->last_frame();
- if (r->last_frame() < frame) {
+ if (last_frame < frame) {
- distance = frame - r->last_frame();
+ distance = frame - last_frame;
if (distance < closest) {
- ret = r->last_frame();
+ ret = last_frame;
closest = distance;
}
}
- if (r->first_frame() < frame) {
+ if (first_frame < frame) {
- distance = frame - r->first_frame();
+ distance = frame - first_frame;
if (distance < closest) {
- ret = r->first_frame();
+ ret = first_frame;
closest = distance;
}
}
@@ -2899,6 +2904,7 @@ Playlist::update_after_tempo_map_change ()
}
thaw ();
+ notify_contents_changed();
}
void