diff options
author | Campbell Barton <ideasman42@gmail.com> | 2014-10-21 13:10:45 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2014-10-21 13:13:32 +0400 |
commit | 2e7d72202f297d1900b11ad6ddcc806f0dbb23b8 (patch) | |
tree | 82bf4d689db5e329a6adec67eb95c30f7e10f5ce | |
parent | 80b44133fc712584e8590433993051d2381ea568 (diff) |
Fix sequencer duplicate with only handle selected
-rw-r--r-- | source/blender/blenkernel/BKE_sequencer.h | 4 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/sequencer.c | 13 |
2 files changed, 13 insertions, 4 deletions
diff --git a/source/blender/blenkernel/BKE_sequencer.h b/source/blender/blenkernel/BKE_sequencer.h index 13cc5d2e84f..c29ab100e02 100644 --- a/source/blender/blenkernel/BKE_sequencer.h +++ b/source/blender/blenkernel/BKE_sequencer.h @@ -326,7 +326,9 @@ void BKE_sequencer_update_sound(struct Scene *scene, struct bSound *sound); void BKE_sequencer_refresh_sound_length(struct Scene *scene); void BKE_sequence_base_unique_name_recursive(ListBase *seqbasep, struct Sequence *seq); -void BKE_sequence_base_dupli_recursive(struct Scene *scene, struct Scene *scene_to, ListBase *nseqbase, ListBase *seqbase, int dupe_flag); +void BKE_sequence_base_dupli_recursive( + struct Scene *scene, struct Scene *scene_to, ListBase *nseqbase, ListBase *seqbase, + int dupe_flag); bool BKE_sequence_is_valid_check(struct Sequence *seq); void BKE_sequencer_clear_scene_in_allseqs(struct Main *bmain, struct Scene *sce); diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index c9647b05ce7..fc2b4d001b8 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -4616,11 +4616,15 @@ Sequence *BKE_sequence_dupli_recursive(Scene *scene, Scene *scene_to, Sequence * return seqn; } -void BKE_sequence_base_dupli_recursive(Scene *scene, Scene *scene_to, ListBase *nseqbase, ListBase *seqbase, int dupe_flag) +void BKE_sequence_base_dupli_recursive( + Scene *scene, Scene *scene_to, ListBase *nseqbase, ListBase *seqbase, + int dupe_flag) { Sequence *seq; Sequence *seqn = NULL; Sequence *last_seq = BKE_sequencer_active_get(scene); + /* always include meta's strips */ + int dupe_flag_recursive = dupe_flag | SEQ_DUPE_ALL; for (seq = seqbase->first; seq; seq = seq->next) { seq->tmp = NULL; @@ -4633,8 +4637,11 @@ void BKE_sequence_base_dupli_recursive(Scene *scene, Scene *scene_to, ListBase * } BLI_addtail(nseqbase, seqn); - if (seq->type == SEQ_TYPE_META) - BKE_sequence_base_dupli_recursive(scene, scene_to, &seqn->seqbase, &seq->seqbase, dupe_flag); + if (seq->type == SEQ_TYPE_META) { + BKE_sequence_base_dupli_recursive( + scene, scene_to, &seqn->seqbase, &seq->seqbase, + dupe_flag_recursive); + } if (dupe_flag & SEQ_DUPE_CONTEXT) { if (seq == last_seq) { |