diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-08-28 13:43:13 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-08-28 13:49:36 +0300 |
commit | e20ed590371a40d1cef74e145634029dd4626e87 (patch) | |
tree | 866eb9f73c3b71acaf819946c693f3e9d40042d8 /source | |
parent | 00230608936e4bf2143ac4caaff3fdcbe77bda3e (diff) |
Fix T56530, T56523: collection visiblity toggling wrong after recent changes.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/depsgraph/intern/depsgraph_query_iter.cc | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/source/blender/depsgraph/intern/depsgraph_query_iter.cc b/source/blender/depsgraph/intern/depsgraph_query_iter.cc index 3331389a1db..791e5edbfc6 100644 --- a/source/blender/depsgraph/intern/depsgraph_query_iter.cc +++ b/source/blender/depsgraph/intern/depsgraph_query_iter.cc @@ -163,6 +163,10 @@ void deg_iterator_objects_step(BLI_Iterator *iter, DEG::IDDepsNode *id_node) /* Set it early in case we need to exit and we are running from within a loop. */ iter->skip = true; + if (!id_node->is_visible) { + return; + } + DEGObjectIterData *data = (DEGObjectIterData *)iter->data; const ID_Type id_type = GS(id_node->id_orig->name); @@ -298,7 +302,11 @@ static void DEG_iterator_ids_step(BLI_Iterator *iter, DEG::IDDepsNode *id_node, { ID *id_cow = id_node->id_cow; - if (only_updated && !(id_cow->recalc & ID_RECALC_ALL)) { + if (!id_node->is_visible) { + iter->skip = true; + return; + } + else if (only_updated && !(id_cow->recalc & ID_RECALC_ALL)) { bNodeTree *ntree = ntreeFromID(id_cow); /* Nodetree is considered part of the datablock. */ |