diff options
author | Alexander Gavrilov <angavrilov@gmail.com> | 2018-12-21 22:35:19 +0300 |
---|---|---|
committer | Alexander Gavrilov <angavrilov@gmail.com> | 2018-12-21 23:10:16 +0300 |
commit | afa3aec45d95c225c0388615ad5d0549769df1fe (patch) | |
tree | 4db411a07ffe2fb0610fe3ef2abf75685fa9fa4e | |
parent | c79b8490976554d448435ae9b61d0697ad40e79f (diff) |
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.
-rw-r--r-- | source/blender/depsgraph/intern/depsgraph.cc | 5 |
1 files changed, 5 insertions, 0 deletions
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; } |