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:
parent
feba1fe974
commit
1dcf0f9cf1
Notes:
blender-bot
2023-02-14 06:00:44 +01:00
Referenced by issue #89722, Sequencer regression creating overlapping strips
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue