Context: Fix scene_collection

We now allow for scene collection that is not currently linked to view layer.
This commit is contained in:
Dalai Felinto 2017-12-28 12:24:10 -02:00
parent dfd7b0d07a
commit 70cdc8412c
Notes: blender-bot 2023-02-14 08:45:12 +01:00
Referenced by commit 8300b5e539, Layers: Fix operator_context unittest
1 changed files with 10 additions and 12 deletions

View File

@ -968,11 +968,11 @@ RenderEngineType *CTX_data_engine_type(const bContext *C)
LayerCollection *CTX_data_layer_collection(const bContext *C)
{
ViewLayer *view_layer = CTX_data_view_layer(C);
LayerCollection *lc;
LayerCollection *layer_collection;
if (ctx_data_pointer_verify(C, "layer_collection", (void *)&lc)) {
if (BKE_view_layer_has_collection(view_layer, lc->scene_collection)) {
return lc;
if (ctx_data_pointer_verify(C, "layer_collection", (void *)&layer_collection)) {
if (BKE_view_layer_has_collection(view_layer, layer_collection->scene_collection)) {
return layer_collection;
}
}
@ -982,16 +982,14 @@ LayerCollection *CTX_data_layer_collection(const bContext *C)
SceneCollection *CTX_data_scene_collection(const bContext *C)
{
SceneCollection *sc;
if (ctx_data_pointer_verify(C, "scene_collection", (void *)&sc)) {
if (BKE_view_layer_has_collection(CTX_data_view_layer(C), sc)) {
return sc;
}
SceneCollection *scene_collection;
if (ctx_data_pointer_verify(C, "scene_collection", (void *)&scene_collection)) {
return scene_collection;
}
LayerCollection *lc = CTX_data_layer_collection(C);
if (lc) {
return lc->scene_collection;
LayerCollection *layer_collection = CTX_data_layer_collection(C);
if (layer_collection) {
return layer_collection->scene_collection;
}
/* fallback */