diff options
Diffstat (limited to 'source/blender/editors/space_action/action_edit.c')
-rw-r--r-- | source/blender/editors/space_action/action_edit.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/source/blender/editors/space_action/action_edit.c b/source/blender/editors/space_action/action_edit.c index 4cec73f306b..377698d931c 100644 --- a/source/blender/editors/space_action/action_edit.c +++ b/source/blender/editors/space_action/action_edit.c @@ -700,15 +700,8 @@ static void insert_action_keys(bAnimContext *ac, short mode) /* insert keyframes */ for (ale = anim_data.first; ale; ale = ale->next) { - AnimData *adt = ANIM_nla_mapping_get(ac, ale); FCurve *fcu = (FCurve *)ale->key_data; - float cfra; - - /* adjust current frame for NLA-scaling */ - if (adt) - cfra = BKE_nla_tweakedit_remap(adt, (float)CFRA, NLATIME_CONVERT_UNMAP); - else - cfra = (float)CFRA; + float cfra = (float)CFRA; /* read value from property the F-Curve represents, or from the curve only? * - ale->id != NULL: Typically, this means that we have enough info to try resolving the path @@ -721,6 +714,12 @@ static void insert_action_keys(bAnimContext *ac, short mode) fcu->rna_path, fcu->array_index, cfra, ts->keyframe_type, flag); } else { + AnimData *adt = ANIM_nla_mapping_get(ac, ale); + + /* adjust current frame for NLA-scaling */ + if (adt) + cfra = BKE_nla_tweakedit_remap(adt, (float)CFRA, NLATIME_CONVERT_UNMAP); + const float curval = evaluate_fcurve(fcu, cfra); insert_vert_fcurve(fcu, cfra, curval, ts->keyframe_type, 0); } |