[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [37550] trunk/blender/source/blender/ editors/transform/transform_conversions.c: fix [#27671] Transforming sequencer effects strips crashes

Campbell Barton ideasman42 at gmail.com
Thu Jun 16 14:48:25 CEST 2011


Revision: 37550
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=37550
Author:   campbellbarton
Date:     2011-06-16 12:48:25 +0000 (Thu, 16 Jun 2011)
Log Message:
-----------
fix [#27671] Transforming sequencer effects strips crashes

Modified Paths:
--------------
    trunk/blender/source/blender/editors/transform/transform_conversions.c

Modified: trunk/blender/source/blender/editors/transform/transform_conversions.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_conversions.c	2011-06-16 12:00:03 UTC (rev 37549)
+++ trunk/blender/source/blender/editors/transform/transform_conversions.c	2011-06-16 12:48:25 UTC (rev 37550)
@@ -3725,27 +3725,8 @@
  * seq->depth must be set before running this function so we know if the strips
  * are root level or not
  */
-#define XXX_DURIAN_ANIM_TX_HACK
 static void SeqTransInfo(TransInfo *t, Sequence *seq, int *recursive, int *count, int *flag)
 {
- 
-#ifdef XXX_DURIAN_ANIM_TX_HACK
-	/* hack */
-	if((seq->flag & SELECT)==0 && seq->type & SEQ_EFFECT) {
-		Sequence *seq_t[3];
-		int i;
-
-		seq_t[0]= seq->seq1;
-		seq_t[1]= seq->seq2;
-		seq_t[2]= seq->seq3;
-
-		for(i=0; i<3; i++) {
-			if (seq_t[i] && ((seq_t[i])->flag & SELECT) && !(seq_t[i]->flag & SEQ_LOCK) && !(seq_t[i]->flag & (SEQ_LEFTSEL|SEQ_RIGHTSEL)))
-				seq->flag |= SELECT;
-		}
-	}
-#endif
-
 	/* for extend we need to do some tricks */
 	if (t->mode == TFM_TIME_EXTEND) {
 
@@ -4105,6 +4086,7 @@
 
 static void createTransSeqData(bContext *C, TransInfo *t)
 {
+#define XXX_DURIAN_ANIM_TX_HACK
 
 	View2D *v2d= UI_view2d_fromcontext(C);
 	Scene *scene= t->scene;
@@ -4135,6 +4117,24 @@
 		t->frame_side = 'B';
 	}
 
+#ifdef XXX_DURIAN_ANIM_TX_HACK
+	{
+		Sequence *seq;
+		for(seq= ed->seqbasep->first; seq; seq= seq->next) {
+			/* hack */
+			if((seq->flag & SELECT)==0 && seq->type & SEQ_EFFECT) {
+				Sequence *seq_user;
+				int i;
+				for(i=0; i<3; i++) {
+					seq_user= *((&seq->seq1) + i);
+					if (seq_user && (seq_user->flag & SELECT) && !(seq_user->flag & SEQ_LOCK) && !(seq_user->flag & (SEQ_LEFTSEL|SEQ_RIGHTSEL))) {
+						seq->flag |= SELECT;
+					}
+				}
+			}
+		}
+	}
+#endif
 
 	count = SeqTransCount(t, ed->seqbasep, 0);
 
@@ -4154,6 +4154,8 @@
 
 	/* loop 2: build transdata array */
 	SeqToTransData_Recursive(t, ed->seqbasep, td, td2d, tdsq);
+
+#undef XXX_DURIAN_ANIM_TX_HACK
 }
 
 




More information about the Bf-blender-cvs mailing list