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:
Diffstat (limited to 'source/blender/sequencer/intern/strip_transform.c')
-rw-r--r--source/blender/sequencer/intern/strip_transform.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/source/blender/sequencer/intern/strip_transform.c b/source/blender/sequencer/intern/strip_transform.c
index a02d8a1428e..b969f531e68 100644
--- a/source/blender/sequencer/intern/strip_transform.c
+++ b/source/blender/sequencer/intern/strip_transform.c
@@ -233,14 +233,22 @@ void SEQ_transform_translate_sequence(Scene *evil_scene, Sequence *seq, int delt
SEQ_offset_animdata(evil_scene, seq, delta);
seq->start += delta;
+ /* 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) {
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);
}
+ /* Ensure that meta bounds are updated, but this function prevents resets seq->start and
+ * start/end point in timeline. */
+ SEQ_time_update_meta_strip_range(evil_scene, seq);
+ /* Move meta start/end points. */
+ SEQ_transform_set_left_handle_frame(seq, seq->startdisp + delta);
+ SEQ_transform_set_right_handle_frame(seq, seq->enddisp + delta);
}
- SEQ_time_update_sequence_bounds(evil_scene, seq);
+ SEQ_time_update_sequence(evil_scene, seq);
}
/* return 0 if there weren't enough space */