[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19460] branches/blender2.5/blender/source /blender/editors/transform/transform_conversions.c: Added back old code for transform seq overlap in an '#if 0',

Campbell Barton ideasman42 at gmail.com
Mon Mar 30 03:16:30 CEST 2009


Revision: 19460
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19460
Author:   campbellbarton
Date:     2009-03-30 03:16:28 +0200 (Mon, 30 Mar 2009)

Log Message:
-----------
Added back old code for transform seq overlap in an '#if 0',
since the loop that works around t->data being freed can sometimes shuffle strips that are not being transformed (eg, when extending or with locked strips)

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/transform/transform_conversions.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-30 00:40:19 UTC (rev 19459)
+++ branches/blender2.5/blender/source/blender/editors/transform/transform_conversions.c	2009-03-30 01:16:28 UTC (rev 19460)
@@ -4384,9 +4384,31 @@
 		Editing *ed= seq_give_editing(t->scene, FALSE);
 		if (ed && !cancelled) {
 			ListBase *seqbasep= ed->seqbasep;
-			int machine, max_machine = 0;
 			Sequence *seq;
+#if 0		// TRANSFORM_FIX_ME, Would prefer to use this since the array takes into
+			// account what where transforming (with extend, locked strips etc)
+			// But at the moment t->data is freed in postTrans so for now re-shuffeling selected strips works ok. - Campbell
+			
+			int a;
+			TransData *td= t->data;
 
+			/* 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++) {
+				seq= ((TransDataSeq *)td->extra)->seq;
+				if ((seq != seq_prev) && (seq->depth==0) && (seq->flag & SEQ_OVERLAP)) {
+					shuffle_seq(seqbasep, seq);
+				}
+
+				seq_prev= seq;
+			}
+#else		// while t->data is not available...
+			int machine, max_machine = 0;
+
 			/* 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);
@@ -4395,12 +4417,13 @@
 			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_LEFTSEL|SEQ_RIGHTSEL)) != 0 && (seq->flag & SEQ_OVERLAP)) {
+					if (seq->machine == machine && seq->depth == 0 && (seq->flag & (SELECT|SEQ_LEFTSEL|SEQ_RIGHTSEL)) != 0 && (seq->flag & SEQ_OVERLAP)) {
 						shuffle_seq(seqbasep, seq);
 					}
 				}
 			}
-
+#endif
+			
 			for(seq= seqbasep->first; seq; seq= seq->next) {
 				/* We might want to build a list of effects that need to be updated during transform */
 				if(seq->type & SEQ_EFFECT) {





More information about the Bf-blender-cvs mailing list