diff options
author | Sybren A. Stüvel <sybren@blender.org> | 2021-01-12 17:43:42 +0300 |
---|---|---|
committer | Sybren A. Stüvel <sybren@blender.org> | 2021-01-12 17:43:42 +0300 |
commit | c3b68fa7b1cafa6c4e4b73830597582606082b6d (patch) | |
tree | 1b01416599f181d6ccd332e5206a63c40c5a594c /source/blender/editors/animation | |
parent | c96d596f433d4bb346190bb9d3a1d615abe3933a (diff) |
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
Diffstat (limited to 'source/blender/editors/animation')
-rw-r--r-- | source/blender/editors/animation/anim_channels_defines.c | 6 |
1 files changed, 3 insertions, 3 deletions
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); |