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
 }
 
 

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to