Fix T89722: Duplicate macro can cause strips to overlap

Bug caused by 78693d524c accidentally removing overlap handling when
transform operator is canceled.

Reviewed By: campbellbarton

Differential Revision: https://developer.blender.org/D11899
This commit is contained in:
Richard Antalik 2021-07-16 19:04:49 +02:00
parent feba1fe974
commit 1dcf0f9cf1
Notes: blender-bot 2023-02-14 06:00:44 +01:00
Referenced by issue #89722, Sequencer regression creating overlapping strips
1 changed files with 8 additions and 0 deletions

View File

@ -262,8 +262,16 @@ static void free_transform_custom_data(TransCustomData *custom_data)
/* Canceled, need to update the strips display. */
static void seq_transform_cancel(TransInfo *t, SeqCollection *transformed_strips)
{
ListBase *seqbase = SEQ_active_seqbase_get(SEQ_editing_get(t->scene, false));
Sequence *seq;
SEQ_ITERATOR_FOREACH (seq, transformed_strips) {
/* Handle pre-existing overlapping strips even when operator is canceled.
* This is necessary for SEQUENCER_OT_duplicate_move macro for example. */
if (SEQ_transform_test_overlap(seqbase, seq)) {
SEQ_transform_seqbase_shuffle(seqbase, seq, t->scene);
}
SEQ_time_update_sequence_bounds(t->scene, seq);
}
}