track: when length changes, force the new area to invalidate
The track limits cache invalidation signals to the length of the track. On some platforms, if a block length was changed to the point that it changed the track length, the track length would change AFTER the cache invalidation and therefore never end up getting rendered. This commit ensures that when a track's length changes, the new section is invalidated regardless of ordering.
This commit is contained in:
@@ -450,8 +450,13 @@ void TrackOutput::UpdateInOutFrom(int index)
|
||||
|
||||
// Update track length
|
||||
if (new_track_length != track_length_) {
|
||||
rational old_track_length = track_length_;
|
||||
|
||||
track_length_ = new_track_length;
|
||||
emit TrackLengthChanged();
|
||||
|
||||
InvalidateCache(qMin(old_track_length, new_track_length),
|
||||
qMax(old_track_length, new_track_length));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user