[Bf-blender-cvs] [a015014] master: Bugfix T43541: Inserting keyframes using sliders in Action Editor doesn't respect NLA time remapping

Joshua Leung noreply at git.blender.org
Tue Feb 3 14:27:17 CET 2015


Commit: a01501443bcf2214357351b4dd221335ed8f7d56
Author: Joshua Leung
Date:   Wed Feb 4 01:55:11 2015 +1300
Branches: master
https://developer.blender.org/rBa01501443bcf2214357351b4dd221335ed8f7d56

Bugfix T43541: Inserting keyframes using sliders in Action Editor doesn't respect NLA time remapping

===================================================================

M	source/blender/editors/animation/anim_channels_defines.c

===================================================================

diff --git a/source/blender/editors/animation/anim_channels_defines.c b/source/blender/editors/animation/anim_channels_defines.c
index 7b29414..37c4005 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);




More information about the Bf-blender-cvs mailing list