From 33ce83984df27d22101a981a39612e284e1972e1 Mon Sep 17 00:00:00 2001 From: Richard Antalik Date: Mon, 28 Nov 2022 18:23:29 +0100 Subject: [PATCH] Fix T102801: Empty metasequence sliding away while moving Meta strip position relies on strips within. When meta strip is empty, update function, that would normally update it's position returns early and this causes translaton to behave erratically. When strip is empty, treat it as normal strip and move its start frame as with other strip types. --- source/blender/sequencer/intern/strip_transform.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/source/blender/sequencer/intern/strip_transform.c b/source/blender/sequencer/intern/strip_transform.c index 14875df9445..7b1ae1dd454 100644 --- a/source/blender/sequencer/intern/strip_transform.c +++ b/source/blender/sequencer/intern/strip_transform.c @@ -117,9 +117,10 @@ void SEQ_transform_translate_sequence(Scene *evil_scene, Sequence *seq, int delt return; } - /* Meta strips requires special handling: their content is to be translated, and then frame range - * of the meta is to be updated for the updated content. */ - if (seq->type == SEQ_TYPE_META) { + /* Meta strips requires their content is to be translated, and then frame range of the meta is + * updated based on nested strips. Thiw won't work for empty metas, so they can be treated as + * normal strip. */ + if (seq->type == SEQ_TYPE_META && !BLI_listbase_is_empty(&seq->seqbase)) { Sequence *seq_child; for (seq_child = seq->seqbase.first; seq_child; seq_child = seq_child->next) { SEQ_transform_translate_sequence(evil_scene, seq_child, delta);