Fix sequencer duplicate with only handle selected

This commit is contained in:
Campbell Barton 2014-10-21 11:10:45 +02:00
parent 80b44133fc
commit 2e7d72202f
2 changed files with 13 additions and 4 deletions

View File

@ -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);

View File

@ -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) {