From afa3aec45d95c225c0388615ad5d0549769df1fe Mon Sep 17 00:00:00 2001 From: Alexander Gavrilov Date: Fri, 21 Dec 2018 22:35:19 +0300 Subject: [PATCH] Fix T59734: cyclic dependency with drivers on PoseBone.bbone_*. Allow more flexible use of drivers on B-Bone properties by connecting the dependencies to the actual operation node that uses the values, instead of the whole component. --- source/blender/depsgraph/intern/depsgraph.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/blender/depsgraph/intern/depsgraph.cc b/source/blender/depsgraph/intern/depsgraph.cc index f3f4d788da2..006e246e287 100644 --- a/source/blender/depsgraph/intern/depsgraph.cc +++ b/source/blender/depsgraph/intern/depsgraph.cc @@ -150,6 +150,11 @@ static bool pointer_to_component_node_criteria( /* Bone - generally, we just want the bone component. */ *type = DEG_NODE_TYPE_BONE; *subdata = pchan->name; + /* But B-Bone properties should connect to the actual operation. */ + if (!ELEM(NULL, pchan->bone, prop) && pchan->bone->segments > 1 && + STRPREFIX(RNA_property_identifier(prop), "bbone_")) { + *operation_code = DEG_OPCODE_BONE_SEGMENTS; + } } return true; }