[Bf-blender-cvs] [1dcf0f9cf11] master: Fix T89722: Duplicate macro can cause strips to overlap

Richard Antalik noreply at git.blender.org
Fri Jul 16 19:17:12 CEST 2021


Commit: 1dcf0f9cf11808a9659b456a424a6ac5e04257e6
Author: Richard Antalik
Date:   Fri Jul 16 19:04:49 2021 +0200
Branches: master
https://developer.blender.org/rB1dcf0f9cf11808a9659b456a424a6ac5e04257e6

Fix T89722: Duplicate macro can cause strips to overlap

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

Reviewed By: campbellbarton

Differential Revision: https://developer.blender.org/D11899

===================================================================

M	source/blender/editors/transform/transform_convert_sequencer.c

===================================================================

diff --git a/source/blender/editors/transform/transform_convert_sequencer.c b/source/blender/editors/transform/transform_convert_sequencer.c
index a6f5aba5a1d..17512c79d03 100644
--- a/source/blender/editors/transform/transform_convert_sequencer.c
+++ b/source/blender/editors/transform/transform_convert_sequencer.c
@@ -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);
   }
 }



More information about the Bf-blender-cvs mailing list