[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [43954] trunk/blender/source/blender/ editors/transform/transform_conversions.c: Fix #30052: VSE: metastrips don' t move with Extend (E)

Sergey Sharybin sergey.vfx at gmail.com
Tue Feb 7 15:27:24 CET 2012


Revision: 43954
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=43954
Author:   nazgul
Date:     2012-02-07 14:27:08 +0000 (Tue, 07 Feb 2012)
Log Message:
-----------
Fix #30052: VSE: metastrips don't move with Extend (E)

Issue was caused by transformation tools weren't taking metastrip clips into
account, so strip inside of merastrips are placedon different from metastrip side
of time cursor, extension happened in unexcpected way.

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	2012-02-07 14:01:34 UTC (rev 43953)
+++ trunk/blender/source/blender/editors/transform/transform_conversions.c	2012-02-07 14:27:08 UTC (rev 43954)
@@ -3805,8 +3805,8 @@
 
 		Scene * scene= t->scene;
 		int cfra= CFRA;
-		int left= seq_tx_get_final_left(seq, 0);
-		int right= seq_tx_get_final_right(seq, 0);
+		int left= seq_tx_get_final_left(seq, 1);
+		int right= seq_tx_get_final_right(seq, 1);
 
 		if (seq->depth == 0 && ((seq->flag & SELECT) == 0 || (seq->flag & SEQ_LOCK))) {
 			*recursive= 0;
@@ -3906,7 +3906,7 @@
 
 
 
-static int SeqTransCount(TransInfo *t, ListBase *seqbase, int depth)
+static int SeqTransCount(TransInfo *t, Sequence *parent, ListBase *seqbase, int depth)
 {
 	Sequence *seq;
 	int tot= 0, recursive, count, flag;
@@ -3914,11 +3914,15 @@
 	for (seq= seqbase->first; seq; seq= seq->next) {
 		seq->depth= depth;
 
+		/* seq->tmp is used by seq_tx_get_final_{left,right} to check sequence's range and clamp to it if needed.
+		 * it's first place where digging into sequences tree, so store link to parent here */
+		seq->tmp = parent;
+
 		SeqTransInfo(t, seq, &recursive, &count, &flag); /* ignore the flag */
 		tot += count;
 
 		if (recursive) {
-			tot += SeqTransCount(t, &seq->seqbase, depth+1);
+			tot += SeqTransCount(t, seq, &seq->seqbase, depth+1);
 		}
 	}
 
@@ -4216,7 +4220,7 @@
 	}
 #endif
 
-	count = SeqTransCount(t, ed->seqbasep, 0);
+	count = SeqTransCount(t, NULL, ed->seqbasep, 0);
 
 	/* allocate memory for data */
 	t->total= count;




More information about the Bf-blender-cvs mailing list