summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/audio_playlist.cc4
-rw-r--r--libs/ardour/crossfade.cc7
2 files changed, 11 insertions, 0 deletions
diff --git a/libs/ardour/audio_playlist.cc b/libs/ardour/audio_playlist.cc
index 01ffb0b9fb..c3d4bfc8de 100644
--- a/libs/ardour/audio_playlist.cc
+++ b/libs/ardour/audio_playlist.cc
@@ -446,6 +446,10 @@ AudioPlaylist::check_dependents (boost::shared_ptr<Region> r, bool norefresh)
continue;
}
+ if (other->position() == r->position() && other->length() == r->length()) {
+ /* precise overlay of two regions - no xfade */
+ continue;
+ }
if (other->layer() < region->layer()) {
top = region;
diff --git a/libs/ardour/crossfade.cc b/libs/ardour/crossfade.cc
index 47b07dc38d..302b19399e 100644
--- a/libs/ardour/crossfade.cc
+++ b/libs/ardour/crossfade.cc
@@ -441,6 +441,13 @@ Crossfade::refresh ()
Invalidated (shared_from_this());
return false;
}
+
+ /* regions must cannot be identically sized and placed */
+
+ if (_in->position() == _out->position() && _in->length() == _out->length()) {
+ Invalidated (shared_from_this());
+ return false;
+ }
/* layer ordering cannot change */