diff --git a/source/blender/editors/space_nla/nla_edit.cc b/source/blender/editors/space_nla/nla_edit.cc index 4f299e96ab6..c34b776dbb9 100644 --- a/source/blender/editors/space_nla/nla_edit.cc +++ b/source/blender/editors/space_nla/nla_edit.cc @@ -1669,7 +1669,7 @@ static int nlaedit_swap_exec(bContext *C, wmOperator *op) /* check if the track has room for the strips to be swapped */ if (BKE_nlastrips_has_space(&nlt->strips, nsa[0], nsa[1]) && - BKE_nlastrips_has_space(&nlt->strips, nsb[0], nsb[1])) + BKE_nlastrips_has_space(&nlt->strips, nsb[0], nsb[1]) && (nsb[1] <= nsa[0])) { /* set new extents for strips then */ area->start = nsa[0]; @@ -1682,7 +1682,13 @@ static int nlaedit_swap_exec(bContext *C, wmOperator *op) } else { /* not enough room to swap, so show message */ - if ((area->flag & NLASTRIP_FLAG_TEMP_META) || (sb->flag & NLASTRIP_FLAG_TEMP_META)) { + if (nsb[1] > nsa[0]) { + BKE_report(op->reports, + RPT_WARNING, + "Cannot swap selected strips because they will overlap each other in their " + "new places"); + } + else if ((area->flag & NLASTRIP_FLAG_TEMP_META) || (sb->flag & NLASTRIP_FLAG_TEMP_META)) { BKE_report( op->reports, RPT_WARNING,