diff options
author | Joshua Leung <aligorith@gmail.com> | 2008-04-23 06:00:27 +0400 |
---|---|---|
committer | Joshua Leung <aligorith@gmail.com> | 2008-04-23 06:00:27 +0400 |
commit | 3552afeef2998b927ac5828a1904bd6c2d5034b6 (patch) | |
tree | f764c38b69cf4421a2c81a22be43fed6a9846436 /source/blender/src/transform_conversions.c | |
parent | c3d36b0a4bec7b51e328fec1fa4f9ae9b34ce47d (diff) |
Added missing redraws for Outliner after transforming and Object/Bone with AutoKey on.
This doesn't fix the problems with the corrupted IPO-driver channels in the Outliner after AutoKeying though. I'm not sure what's causing them, but I cannot even seem to be able to disable those channels.
Diffstat (limited to 'source/blender/src/transform_conversions.c')
-rw-r--r-- | source/blender/src/transform_conversions.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/source/blender/src/transform_conversions.c b/source/blender/src/transform_conversions.c index f7b8ba6c682..46a7c13b752 100644 --- a/source/blender/src/transform_conversions.c +++ b/source/blender/src/transform_conversions.c @@ -3180,9 +3180,10 @@ short autokeyframe_cfra_can_key(Object *ob) void autokeyframe_ob_cb_func(Object *ob, int tmode) { IpoCurve *icu; - char *actname=""; - if (autokeyframe_cfra_can_key(ob)) { + if (autokeyframe_cfra_can_key(ob)) { + char *actname = NULL; + if (ob->ipoflag & OB_ACTION_OB) actname= "Object"; @@ -3260,14 +3261,14 @@ void autokeyframe_ob_cb_func(Object *ob, int tmode) } } else { - insertkey(&ob->id, ID_OB, actname, NULL, OB_ROT_X, 0); - insertkey(&ob->id, ID_OB, actname, NULL, OB_ROT_Y, 0); - insertkey(&ob->id, ID_OB, actname, NULL, OB_ROT_Z, 0); - insertkey(&ob->id, ID_OB, actname, NULL, OB_LOC_X, 0); insertkey(&ob->id, ID_OB, actname, NULL, OB_LOC_Y, 0); insertkey(&ob->id, ID_OB, actname, NULL, OB_LOC_Z, 0); + insertkey(&ob->id, ID_OB, actname, NULL, OB_ROT_X, 0); + insertkey(&ob->id, ID_OB, actname, NULL, OB_ROT_Y, 0); + insertkey(&ob->id, ID_OB, actname, NULL, OB_ROT_Z, 0); + insertkey(&ob->id, ID_OB, actname, NULL, OB_SIZE_X, 0); insertkey(&ob->id, ID_OB, actname, NULL, OB_SIZE_Y, 0); insertkey(&ob->id, ID_OB, actname, NULL, OB_SIZE_Z, 0); @@ -3275,6 +3276,7 @@ void autokeyframe_ob_cb_func(Object *ob, int tmode) remake_object_ipos(ob); allqueue(REDRAWMARKER, 0); + allqueue(REDRAWOOPS, 0); } } @@ -3307,7 +3309,7 @@ void autokeyframe_pose_cb_func(Object *ob, int tmode, short targetless_ik) bActionChannel *achan; for (achan = act->chanbase.first; achan; achan=achan->next) { - if (achan->ipo && !strcmp (achan->name, pchan->name)) { + if ((achan->ipo) && !strcmp(achan->name, pchan->name)) { for (icu = achan->ipo->curve.first; icu; icu=icu->next) { /* only insert keyframe if needed? */ if (IS_AUTOKEY_FLAG(INSERTNEEDED)) @@ -3380,8 +3382,9 @@ void autokeyframe_pose_cb_func(Object *ob, int tmode, short targetless_ik) } } - remake_action_ipos (act); + remake_action_ipos(act); allqueue(REDRAWMARKER, 0); + allqueue(REDRAWOOPS, 0); /* locking can be disabled */ ob->pose->flag &= ~(POSE_DO_UNLOCK|POSE_LOCKED); |