[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [12266] trunk/blender/source/blender/src/ transform_conversions.c: IPO-Transform Bugfix:

Joshua Leung aligorith at gmail.com
Wed Oct 17 10:23:08 CEST 2007


Revision: 12266
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=12266
Author:   aligorith
Date:     2007-10-17 10:23:08 +0200 (Wed, 17 Oct 2007)

Log Message:
-----------
IPO-Transform Bugfix:

Peach/ideasman_42 report... 

After transforming sequence IPO's, there were occasional crashes.

Modified Paths:
--------------
    trunk/blender/source/blender/src/transform_conversions.c

Modified: trunk/blender/source/blender/src/transform_conversions.c
===================================================================
--- trunk/blender/source/blender/src/transform_conversions.c	2007-10-16 18:04:56 UTC (rev 12265)
+++ trunk/blender/source/blender/src/transform_conversions.c	2007-10-17 08:23:08 UTC (rev 12266)
@@ -2738,7 +2738,7 @@
 {
 	Object *ob;
 	Base *base;
-	int redrawipo=0;
+	short redrawipo=0, resetslowpar=1;
 	int cancelled= (t->state == TRANS_CANCEL);
 		
 	if(t->spacetype == SPACE_ACTION) {
@@ -2783,13 +2783,20 @@
 	}
 	else if(t->spacetype == SPACE_NLA) {
 		synchronize_action_strips();
-	
+		
 		/* cleanup */
 		for (base=G.scene->base.first; base; base=base->next)
 			base->flag &= ~(BA_HAS_RECALC_OB|BA_HAS_RECALC_DATA);
 		
 		recalc_all_ipos();	// bad
 	}
+	else if(t->spacetype == SPACE_IPO) {
+		// FIXME! is there any code from the old transform_ipo that needs to be added back? 
+		
+		/* resetting slow-parents isn't really necessary when editing sequence ipo's */
+		if (G.sipo->blocktype==ID_SEQ)
+			resetslowpar= 0;
+	}
 	else if(G.obedit) {
 		if(t->mode==TFM_BONESIZE || t->mode==TFM_BONE_ENVELOPE)
 			allqueue(REDRAWBUTSEDIT, 0);
@@ -2839,7 +2846,7 @@
 		
 		if(t->mode==TFM_BONESIZE || t->mode==TFM_BONE_ENVELOPE)
 			allqueue(REDRAWBUTSEDIT, 0);
-
+		
 	}
 	else {
 		base= FIRSTBASE;
@@ -2869,7 +2876,8 @@
 		allqueue(REDRAWIPO, 0);
 	}
 	
-	reset_slowparents();
+	if(resetslowpar)
+		reset_slowparents();
 	
 	/* note; should actually only be done for all objects when a lamp is moved... (ton) */
 	if(t->spacetype==SPACE_VIEW3D && G.vd->drawtype == OB_SHADED)





More information about the Bf-blender-cvs mailing list