From a01501443bcf2214357351b4dd221335ed8f7d56 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Wed, 4 Feb 2015 01:55:11 +1300 Subject: Bugfix T43541: Inserting keyframes using sliders in Action Editor doesn't respect NLA time remapping --- source/blender/editors/animation/anim_channels_defines.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/animation/anim_channels_defines.c b/source/blender/editors/animation/anim_channels_defines.c index 7b29414c763..37c40052275 100644 --- a/source/blender/editors/animation/anim_channels_defines.c +++ b/source/blender/editors/animation/anim_channels_defines.c @@ -61,6 +61,7 @@ #include "RNA_access.h" +#include "BKE_animsys.h" #include "BKE_curve.h" #include "BKE_key.h" #include "BKE_nla.h" @@ -3689,6 +3690,7 @@ static void achannel_nlatrack_solo_widget_cb(bContext *C, void *adt_poin, void * static void achannel_setting_slider_cb(bContext *C, void *id_poin, void *fcu_poin) { ID *id = (ID *)id_poin; + AnimData *adt = BKE_animdata_from_id(id); FCurve *fcu = (FCurve *)fcu_poin; ReportList *reports = CTX_wm_reports(C); @@ -3699,9 +3701,8 @@ static void achannel_setting_slider_cb(bContext *C, void *id_poin, void *fcu_poi bool done = false; float cfra; - /* get current frame */ - // NOTE: this will do for now... - cfra = (float)CFRA; + /* get current frame and apply NLA-mapping to it (if applicable) */ + cfra = BKE_nla_tweakedit_remap(adt, (float)CFRA, NLATIME_CONVERT_UNMAP); /* get flags for keyframing */ flag = ANIM_get_keyframing_flags(scene, 1); @@ -3738,9 +3739,8 @@ static void achannel_setting_slider_shapekey_cb(bContext *C, void *key_poin, voi bool done = false; float cfra; - /* get current frame */ - // NOTE: this will do for now... - cfra = (float)CFRA; + /* get current frame and apply NLA-mapping to it (if applicable) */ + cfra = BKE_nla_tweakedit_remap(key->adt, (float)CFRA, NLATIME_CONVERT_UNMAP); /* get flags for keyframing */ flag = ANIM_get_keyframing_flags(scene, 1); -- cgit v1.2.3