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.
This commit is contained in:
Richard Antalik 2022-11-28 18:23:29 +01:00 committed by Philipp Oeser
parent 7a4b3d2287
commit 2bbabbc739
Notes: blender-bot 2023-02-14 06:45:14 +01:00
Referenced by issue #100749, Blender LTS: Maintenance Task 3.3
Referenced by issue #102801, Regression: Empty metasequence sliding away while moving
1 changed files with 4 additions and 3 deletions

View File

@ -138,9 +138,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);