diff options
-rw-r--r-- | source/blender/depsgraph/intern/builder/deg_builder.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/source/blender/depsgraph/intern/builder/deg_builder.cc b/source/blender/depsgraph/intern/builder/deg_builder.cc index 9945ff3a224..d6a054f2ee9 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder.cc @@ -50,7 +50,17 @@ void deg_graph_build_finalize(Main *bmain, Depsgraph *graph) * update tag. */ foreach (IDDepsNode *id_node, graph->id_nodes) { + ID *id = id_node->id_orig; id_node->finalize_build(graph); + if ((id->tag & LIB_TAG_ID_RECALC_ALL)) { + id_node->tag_update(graph); + } + else if (GS(id->name) == ID_OB) { + Object *object = (Object *)id; + if (object->recalc & OB_RECALC_ALL) { + id_node->tag_update(graph); + } + } /* TODO(sergey): This is not ideal at all, since this forces * re-evaluaiton of the whole tree. */ |