From c39a8657be6d1096154222b87358dde8a8054ff1 Mon Sep 17 00:00:00 2001 From: Dalai Felinto Date: Mon, 3 Jun 2019 13:10:35 -0300 Subject: [PATCH] Fix T65448 - Outliner - Show all inside in disabled collection crash --- source/blender/blenkernel/intern/layer.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/source/blender/blenkernel/intern/layer.c b/source/blender/blenkernel/intern/layer.c index 60c00160e6d..e520701dd25 100644 --- a/source/blender/blenkernel/intern/layer.c +++ b/source/blender/blenkernel/intern/layer.c @@ -1073,9 +1073,11 @@ bool BKE_layer_collection_isolate(Scene *scene, static void layer_collection_bases_show_recursive(ViewLayer *view_layer, LayerCollection *lc) { - for (CollectionObject *cob = lc->collection->gobject.first; cob; cob = cob->next) { - Base *base = BKE_view_layer_base_find(view_layer, cob->ob); - base->flag &= ~BASE_HIDDEN; + if ((lc->flag & LAYER_COLLECTION_EXCLUDE) == 0) { + for (CollectionObject *cob = lc->collection->gobject.first; cob; cob = cob->next) { + Base *base = BKE_view_layer_base_find(view_layer, cob->ob); + base->flag &= ~BASE_HIDDEN; + } } for (LayerCollection *lc_iter = lc->layer_collections.first; lc_iter; lc_iter = lc_iter->next) { layer_collection_bases_show_recursive(view_layer, lc_iter); @@ -1084,9 +1086,11 @@ static void layer_collection_bases_show_recursive(ViewLayer *view_layer, LayerCo static void layer_collection_bases_hide_recursive(ViewLayer *view_layer, LayerCollection *lc) { - for (CollectionObject *cob = lc->collection->gobject.first; cob; cob = cob->next) { - Base *base = BKE_view_layer_base_find(view_layer, cob->ob); - base->flag |= BASE_HIDDEN; + if ((lc->flag & LAYER_COLLECTION_EXCLUDE) == 0) { + for (CollectionObject *cob = lc->collection->gobject.first; cob; cob = cob->next) { + Base *base = BKE_view_layer_base_find(view_layer, cob->ob); + base->flag |= BASE_HIDDEN; + } } for (LayerCollection *lc_iter = lc->layer_collections.first; lc_iter; lc_iter = lc_iter->next) { layer_collection_bases_hide_recursive(view_layer, lc_iter);