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:
authorMartin Poirier <theeth@yahoo.com>2009-03-28 19:45:22 +0300
committerMartin Poirier <theeth@yahoo.com>2009-03-28 19:45:22 +0300
commita5f32714f77ed2ba7b42163fb55a3dfed6bd29af (patch)
tree26cc5b510b3342967da47ded238fa88856244e80 /source/blender/editors
parentce6c77b5696eeee241b452bc9496c4edecee1deb (diff)
Remove exception for sequencer in after_trans by rewriting the update code. Please don't start adding exceptions like that in transform without asking first.
Diffstat (limited to 'source/blender/editors')
-rw-r--r--source/blender/editors/transform/transform_conversions.c33
-rw-r--r--source/blender/editors/transform/transform_generics.c2
2 files changed, 11 insertions, 24 deletions
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c
index 376ce2af7a0..244ba5bf434 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -4384,34 +4384,21 @@ void special_aftertrans_update(TransInfo *t)
Editing *ed= seq_give_editing(t->scene, FALSE);
if (ed && !cancelled) {
ListBase *seqbasep= ed->seqbasep;
- int a;
- TransData *td= t->data;
- TransDataSeq *tdsq= NULL;
+ int machine, max_machine = 0;
Sequence *seq;
+ /* update in order so we always move bottom strips first */
+ for(seq= seqbasep->first; seq; seq= seq->next) {
+ max_machine = MAX2(max_machine, seq->machine);
+ }
-
- /* prevent updating the same seq twice
- * if the transdata order is changed this will mess up
- * but so will TransDataSeq */
- Sequence *seq_prev= NULL;
-
- /* flush to 2d vector from internally used 3d vector */
- for(a=0; a<t->total; a++, td++) {
-
- tdsq= (TransDataSeq *)td->extra;
- seq= tdsq->seq;
-
- if (seq != seq_prev) {
- if(seq->depth==0) {
- if (seq->flag & SEQ_OVERLAP) {
- shuffle_seq(seqbasep, seq);
- }
+ for (machine = 0; machine <= max_machine; machine++)
+ {
+ for(seq= seqbasep->first; seq; seq= seq->next) {
+ if (seq->machine == machine && seq->depth==0 && seq->flag & SEQ_OVERLAP) {
+ shuffle_seq(seqbasep, seq);
}
}
-
- /* as last: */
- seq_prev= seq;
}
for(seq= seqbasep->first; seq; seq= seq->next) {
diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c
index 574a045bc86..2bc177c4330 100644
--- a/source/blender/editors/transform/transform_generics.c
+++ b/source/blender/editors/transform/transform_generics.c
@@ -841,7 +841,7 @@ void postTrans (TransInfo *t)
}
/* postTrans can be called when nothing is selected, so data is NULL already */
- if (t->data && (t->spacetype != SPACE_SEQ)) { // XXX SEQ Exception is needed because of special_aftertrans_update using t->data
+ if (t->data) {
int a;
/* since ipokeys are optional on objects, we mallocced them per trans-data */