Fix #109081: Ensure swap strips do not overlap each other. #109980
|
@ -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 */
|
/* check if the track has room for the strips to be swapped */
|
||||||
if (BKE_nlastrips_has_space(&nlt->strips, nsa[0], nsa[1]) &&
|
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 */
|
/* set new extents for strips then */
|
||||||
area->start = nsa[0];
|
area->start = nsa[0];
|
||||||
|
@ -1682,7 +1682,13 @@ static int nlaedit_swap_exec(bContext *C, wmOperator *op)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
/* not enough room to swap, so show message */
|
/* 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(
|
BKE_report(
|
||||||
op->reports,
|
op->reports,
|
||||||
RPT_WARNING,
|
RPT_WARNING,
|
||||||
|
|
Loading…
Reference in New Issue