[Bf-blender-cvs] [141064d] master: Fix T42567: Color Wheel Buttons do not autokey correctly.

Bastien Montagne noreply at git.blender.org
Sat Nov 15 18:19:42 CET 2014


Commit: 141064d7ae3f2e9277ba272d582c0a72c1500e1c
Author: Bastien Montagne
Date:   Sat Nov 15 17:57:29 2014 +0100
Branches: master
https://developer.blender.org/rB141064d7ae3f2e9277ba272d582c0a72c1500e1c

Fix T42567: Color Wheel Buttons do not autokey correctly.

In fact, any button controlling a whole array of values were broken
because they always only keyed the index of the single fcurve returned
by `ui_but_get_fcurve()`, now pass button's rna_index value instead.

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

M	source/blender/editors/interface/interface_anim.c

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

diff --git a/source/blender/editors/interface/interface_anim.c b/source/blender/editors/interface/interface_anim.c
index 43899f9..aa23184 100644
--- a/source/blender/editors/interface/interface_anim.c
+++ b/source/blender/editors/interface/interface_anim.c
@@ -219,7 +219,14 @@ void ui_but_anim_autokey(bContext *C, uiBut *but, Scene *scene, float cfra)
 			short flag = ANIM_get_keyframing_flags(scene, 1);
 
 			fcu->flag &= ~FCURVE_SELECTED;
-			insert_keyframe(reports, id, action, ((fcu->grp) ? (fcu->grp->name) : (NULL)), fcu->rna_path, fcu->array_index, cfra, flag);
+
+			/* Note: We use but->rnaindex instead of fcu->array_index,
+			 *       because a button may control all items of an array at once.
+			 *       E.g., color wheels (see T42567). */
+			BLI_assert((fcu->array_index == but->rnaindex) || (but->rnaindex == -1));
+			insert_keyframe(reports, id, action, ((fcu->grp) ? (fcu->grp->name) : (NULL)),
+			                fcu->rna_path, but->rnaindex, cfra, flag);
+
 			WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | NA_EDITED, NULL);
 		}
 	}




More information about the Bf-blender-cvs mailing list