[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19436] branches/blender2.5/blender/source /blender/editors/transform: Remove exception for sequencer in after_trans by rewriting the update code .

Martin Poirier theeth at yahoo.com
Sat Mar 28 17:45:22 CET 2009


Revision: 19436
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19436
Author:   theeth
Date:     2009-03-28 17:45:22 +0100 (Sat, 28 Mar 2009)

Log Message:
-----------
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.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/transform/transform_conversions.c
    branches/blender2.5/blender/source/blender/editors/transform/transform_generics.c

Modified: branches/blender2.5/blender/source/blender/editors/transform/transform_conversions.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/transform/transform_conversions.c	2009-03-28 16:25:33 UTC (rev 19435)
+++ branches/blender2.5/blender/source/blender/editors/transform/transform_conversions.c	2009-03-28 16:45:22 UTC (rev 19436)
@@ -4384,34 +4384,21 @@
 		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) {

Modified: branches/blender2.5/blender/source/blender/editors/transform/transform_generics.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/transform/transform_generics.c	2009-03-28 16:25:33 UTC (rev 19435)
+++ branches/blender2.5/blender/source/blender/editors/transform/transform_generics.c	2009-03-28 16:45:22 UTC (rev 19436)
@@ -841,7 +841,7 @@
 	}
 	
 	/* 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 */





More information about the Bf-blender-cvs mailing list