Sequencer: reshuffle overlapping strips on cancel trasnform

It was possible to create overlapped strips by duplicating and
cancelling transform, now it sohuld be handled properly.
This commit is contained in:
2012-08-24 16:09:48 +00:00
parent b5e90d6b1c
commit 2536362f79

View File

@@ -4209,7 +4209,7 @@ static void freeSeqData(TransInfo *t)
for (a = 0; a < t->total; a++, td++) {
if ((seq != seq_prev) && (seq->depth == 0) && (seq->flag & SEQ_OVERLAP)) {
seq = ((TransDataSeq *)td->extra)->seq;
shuffle_seq(seqbasep, seq);
BKE_sequence_base_shuffle(seqbasep, seq, t->scene);
}
seq_prev = seq;
@@ -4244,7 +4244,7 @@ static void freeSeqData(TransInfo *t)
has_effect = TRUE;
}
else {
/* Tag seq with a non zero value, used by shuffle_seq_time to identify the ones to shuffle */
/* Tag seq with a non zero value, used by BKE_sequence_base_shuffle_time to identify the ones to shuffle */
seq->tmp = (void *)1;
}
}
@@ -4289,7 +4289,7 @@ static void freeSeqData(TransInfo *t)
BKE_sequence_base_shuffle_time(seqbasep, t->scene);
}
#else
shuffle_seq_time(seqbasep, t->scene);
BKE_sequence_base_shuffle_time(seqbasep, t->scene);
#endif
if (has_effect) {
@@ -4340,6 +4340,9 @@ static void freeSeqData(TransInfo *t)
for (a = 0; a < t->total; a++, td++) {
seq = ((TransDataSeq *)td->extra)->seq;
if ((seq != seq_prev) && (seq->depth == 0)) {
if (seq->flag & SEQ_OVERLAP)
BKE_sequence_base_shuffle(seqbasep, seq, t->scene);
BKE_sequence_calc_disp(t->scene, seq);
}
seq_prev = seq;