Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Antalik <richardantalik@gmail.com>2022-06-14 22:55:59 +0300
committerRichard Antalik <richardantalik@gmail.com>2022-06-14 22:55:59 +0300
commit20ba130315f3308907df463bb0a5d2676410921f (patch)
tree0e8d3c28dbaebb75139cd6bafc55cfedf69c655c /source/blender/sequencer/intern/strip_transform.c
parenta59fedb0bf7eb9215eb864a3772d922be4780138 (diff)
Fix T72831: Incorrect animation handling when strips overlap
Function `SEQ_transform_seqbase_shuffle_time` did not have access to strip effects, and therefore could not handle their animation. Since now transformation knows what strips can't be directly moved, but their position depends on other strips, this collection of strips is passed as argument, so animation can be offset correctly.
Diffstat (limited to 'source/blender/sequencer/intern/strip_transform.c')
-rw-r--r--source/blender/sequencer/intern/strip_transform.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/source/blender/sequencer/intern/strip_transform.c b/source/blender/sequencer/intern/strip_transform.c
index ebf317eff05..a6dd41d72df 100644
--- a/source/blender/sequencer/intern/strip_transform.c
+++ b/source/blender/sequencer/intern/strip_transform.c
@@ -307,6 +307,7 @@ static int shuffle_seq_time_offset_get(SeqCollection *strips_to_shuffle,
}
bool SEQ_transform_seqbase_shuffle_time(SeqCollection *strips_to_shuffle,
+ SeqCollection *time_dependent_strips,
ListBase *seqbasep,
Scene *evil_scene,
ListBase *markers,
@@ -323,6 +324,12 @@ bool SEQ_transform_seqbase_shuffle_time(SeqCollection *strips_to_shuffle,
seq->flag &= ~SEQ_OVERLAP;
}
+ if (time_dependent_strips != NULL) {
+ SEQ_ITERATOR_FOREACH (seq, time_dependent_strips) {
+ SEQ_offset_animdata(evil_scene, seq, offset);
+ }
+ }
+
if (use_sync_markers && !(evil_scene->toolsettings->lock_markers) && (markers != NULL)) {
TimeMarker *marker;
/* affect selected markers - it's unlikely that we will want to affect all in this way? */