diff options
Diffstat (limited to 'source/blender/makesrna/intern/rna_armature.c')
-rw-r--r-- | source/blender/makesrna/intern/rna_armature.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/source/blender/makesrna/intern/rna_armature.c b/source/blender/makesrna/intern/rna_armature.c index 1b07b224f87..d398bb4bb78 100644 --- a/source/blender/makesrna/intern/rna_armature.c +++ b/source/blender/makesrna/intern/rna_armature.c @@ -149,7 +149,20 @@ static void rna_Armature_redraw_data(Main *bmain, Scene *scene, PointerRNA *ptr) static char *rna_Bone_path(PointerRNA *ptr) { - return BLI_sprintfN("bones[\"%s\"]", ((Bone*)ptr->data)->name); + Bone *bone = (Bone*)ptr->data; + + /* special exception for trying to get the path where ID-block is Object + * - this will be assumed to be from a Pose Bone... + */ + if (ptr->id.data) { + ID *id = (ID *)ptr->id.data; + + if (GS(id->name) == ID_OB) + return BLI_sprintfN("pose.bones[\"%s\"].bone", bone->name); + } + + /* from armature... */ + return BLI_sprintfN("bones[\"%s\"]", bone->name); } static IDProperty *rna_Bone_idprops(PointerRNA *ptr, int create) |