diff options
author | Campbell Barton <ideasman42@gmail.com> | 2012-05-16 20:28:33 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2012-05-16 20:28:33 +0400 |
commit | bd45c0008ce7674a05f910c4c80c2f4fa44e9b5d (patch) | |
tree | e2c45de59f409fe49b081e4d5b48635c06ce5cc1 /source/blender/editors | |
parent | 04bc61a0d58267d3018b478b79fbd09e5920b629 (diff) |
evil mango feature, alt transform sequence strips bumps other strips out of the way
Diffstat (limited to 'source/blender/editors')
-rw-r--r-- | source/blender/editors/transform/transform_conversions.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index c4db85420ca..c9eb975cb77 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -4054,7 +4054,47 @@ static void freeSeqData(TransInfo *t) } } +#if 1 /* (mango hack! - for Ian) this is truely bad - should _never_ be in a release :| */ + if (CTX_wm_window(t->context)->eventstate->alt) { + int minframe = MAXFRAME; + td= t->data; + seq_prev= NULL; + for (a=0; a<t->total; a++, td++) { + seq= ((TransDataSeq *)td->extra)->seq; + if ((seq != seq_prev)) { + minframe = MIN2(minframe, seq->startdisp); + } + } + + + for (seq= seqbasep->first; seq; seq= seq->next) { + if (!(seq->flag & SELECT)) { + if (seq->startdisp >= minframe) { + seq->machine += MAXSEQ * 2; + } + } + } + + shuffle_seq_time(seqbasep, t->scene); + + for (seq= seqbasep->first; seq; seq= seq->next) { + if (seq->machine >= MAXSEQ * 2) { + seq->machine -= MAXSEQ * 2; + seq->tmp= (void*)1; + } + else { + seq->tmp= NULL; + } + } + + shuffle_seq_time(seqbasep, t->scene); + } + else { + shuffle_seq_time(seqbasep, t->scene); + } +#else shuffle_seq_time(seqbasep, t->scene); +#endif if (has_effect) { /* update effects strips based on strips just moved in time */ |