From c3b68fa7b1cafa6c4e4b73830597582606082b6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Tue, 12 Jan 2021 15:43:42 +0100 Subject: Fix T81965: Library-Override Not able to edit Keyframe properties Fix keyframe properties not being editable when animating a library-overridden datablock. The problem was that RNA pointers were created based on the datablock affected by the animation (for example an Object), instead of the datablock that contains the FCurve itself (the Action). The latter can be local to the current blend file and should thus be editable, even when the former is not. Reviewed By: mont29 Maniphest Tasks: T81965 Differential Revision: https://developer.blender.org/D10091 --- source/blender/editors/animation/anim_channels_defines.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'source/blender/editors/animation') diff --git a/source/blender/editors/animation/anim_channels_defines.c b/source/blender/editors/animation/anim_channels_defines.c index 6cb829d3a23..05cbb3ef48f 100644 --- a/source/blender/editors/animation/anim_channels_defines.c +++ b/source/blender/editors/animation/anim_channels_defines.c @@ -892,7 +892,7 @@ static void acf_group_name(bAnimListElem *ale, char *name) /* name property for group entries */ static bool acf_group_name_prop(bAnimListElem *ale, PointerRNA *ptr, PropertyRNA **prop) { - RNA_pointer_create(ale->id, &RNA_ActionGroup, ale->data, ptr); + RNA_pointer_create(ale->fcurve_owner_id, &RNA_ActionGroup, ale->data, ptr); *prop = RNA_struct_name_property(ptr->type); return (*prop != NULL); @@ -1013,7 +1013,7 @@ static bool acf_fcurve_name_prop(bAnimListElem *ale, PointerRNA *ptr, PropertyRN * as our "name" so that user can perform quick fixes */ if (fcu->flag & FCURVE_DISABLED) { - RNA_pointer_create(ale->id, &RNA_FCurve, ale->data, ptr); + RNA_pointer_create(ale->fcurve_owner_id, &RNA_FCurve, ale->data, ptr); *prop = RNA_struct_find_property(ptr, "data_path"); } else { @@ -3965,7 +3965,7 @@ static void acf_nlaaction_name(bAnimListElem *ale, char *name) static bool acf_nlaaction_name_prop(bAnimListElem *ale, PointerRNA *ptr, PropertyRNA **prop) { if (ale->data) { - RNA_pointer_create(ale->id, &RNA_Action, ale->data, ptr); + RNA_pointer_create(ale->fcurve_owner_id, &RNA_Action, ale->data, ptr); *prop = RNA_struct_name_property(ptr->type); return (*prop != NULL); -- cgit v1.2.3