Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Leung <aligorith@gmail.com>2007-10-17 12:23:08 +0400
committerJoshua Leung <aligorith@gmail.com>2007-10-17 12:23:08 +0400
commit919e5baba8a258eecd9e56009055f5b4e753ab83 (patch)
treee171c816878991877183733036122e7213b7e451 /source/blender
parent5b755bade20d154e2bc8c563b31259e303f1005c (diff)
IPO-Transform Bugfix:
Peach/ideasman_42 report... After transforming sequence IPO's, there were occasional crashes.
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/src/transform_conversions.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/source/blender/src/transform_conversions.c b/source/blender/src/transform_conversions.c
index 9520aa7b976..2f030a4a394 100644
--- a/source/blender/src/transform_conversions.c
+++ b/source/blender/src/transform_conversions.c
@@ -2738,7 +2738,7 @@ void special_aftertrans_update(TransInfo *t)
{
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 @@ void special_aftertrans_update(TransInfo *t)
}
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 @@ void special_aftertrans_update(TransInfo *t)
if(t->mode==TFM_BONESIZE || t->mode==TFM_BONE_ENVELOPE)
allqueue(REDRAWBUTSEDIT, 0);
-
+
}
else {
base= FIRSTBASE;
@@ -2869,7 +2876,8 @@ void special_aftertrans_update(TransInfo *t)
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)