diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-07-02 16:14:47 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-07-02 16:17:17 +0300 |
commit | 26e6bb3fa371047e6d8d6f920128af1bcd0cfe65 (patch) | |
tree | 8b5c12f0831cbbbc3695950e5da818a2f870838f /source/blender/depsgraph | |
parent | 71099a3d67fbf8cfb83faa014215f34fa3232ff6 (diff) |
Fix T65778: Missing selection update with linked objects in edit mode
Diffstat (limited to 'source/blender/depsgraph')
-rw-r--r-- | source/blender/depsgraph/intern/builder/deg_builder_nodes.cc | 5 | ||||
-rw-r--r-- | source/blender/depsgraph/intern/builder/deg_builder_relations.cc | 10 |
2 files changed, 13 insertions, 2 deletions
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc index e65dd3b4560..9b02f231be4 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc @@ -1207,6 +1207,11 @@ void DepsgraphNodeBuilder::build_object_data_geometry(Object *object, bool is_ob build_object_pointcache(object); /* Geometry. */ build_object_data_geometry_datablock((ID *)object->data, is_object_visible); + /* Batch cache. */ + add_operation_node(&object->id, + NodeType::BATCH_CACHE, + OperationCode::GEOMETRY_SELECT_UPDATE, + function_bind(BKE_object_select_update, _1, object_cow)); } void DepsgraphNodeBuilder::build_object_data_geometry_datablock(ID *obdata, bool is_object_visible) diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc index c7f6116e81d..8f85640bb4d 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc @@ -1988,10 +1988,16 @@ void DepsgraphRelationBuilder::build_object_data_geometry(Object *object) } } /* Syncronization back to original object. */ - ComponentKey final_geometry_jey(&object->id, NodeType::GEOMETRY); + ComponentKey final_geometry_key(&object->id, NodeType::GEOMETRY); OperationKey synchronize_key( &object->id, NodeType::SYNCHRONIZATION, OperationCode::SYNCHRONIZE_TO_ORIGINAL); - add_relation(final_geometry_jey, synchronize_key, "Synchronize to Original"); + add_relation(final_geometry_key, synchronize_key, "Synchronize to Original"); + /* Batch cache. */ + OperationKey object_data_select_key( + obdata, NodeType::BATCH_CACHE, OperationCode::GEOMETRY_SELECT_UPDATE); + OperationKey object_select_key( + &object->id, NodeType::BATCH_CACHE, OperationCode::GEOMETRY_SELECT_UPDATE); + add_relation(object_data_select_key, object_select_key, "Data Selection -> Object Selection"); } void DepsgraphRelationBuilder::build_object_data_geometry_datablock(ID *obdata) |