diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-06-18 15:46:56 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-06-18 16:20:06 +0300 |
commit | fec97ec94939ab32b43e3221e4c611e1e873a563 (patch) | |
tree | 35a3ae12ba6d46fc46c02f6583387691abdc9620 /source/blender/blenkernel/intern/layer.c | |
parent | 7c836ac30a9645f04fdfd0fe1be77e8f63c4141d (diff) |
Objects: when active object gets hidden, make it inactive.
Diffstat (limited to 'source/blender/blenkernel/intern/layer.c')
-rw-r--r-- | source/blender/blenkernel/intern/layer.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/layer.c b/source/blender/blenkernel/intern/layer.c index 0022ed9ae24..2b44a36a0d8 100644 --- a/source/blender/blenkernel/intern/layer.c +++ b/source/blender/blenkernel/intern/layer.c @@ -1270,9 +1270,10 @@ void BKE_layer_eval_view_layer( view_layer->object_bases_array[base_index++] = base; } + /* Flush back base flag to the original view layer for editing. */ + ViewLayer *view_layer_orig = DEG_get_input_view_layer(depsgraph); if (view_layer == DEG_get_evaluated_view_layer(depsgraph)) { - ViewLayer *view_layer_orig = DEG_get_input_view_layer(depsgraph); Base *base_orig = view_layer_orig->object_bases.first; const Base *base_eval = view_layer->object_bases.first; while (base_orig != NULL) { @@ -1281,6 +1282,14 @@ void BKE_layer_eval_view_layer( base_eval = base_eval->next; } } + + /* Hidden objects can't be active. */ + if (view_layer->basact && !(view_layer->basact->flag & BASE_VISIBLED)) { + view_layer->basact = NULL; + } + if (view_layer_orig->basact && !(view_layer_orig->basact->flag & BASE_VISIBLED)) { + view_layer_orig->basact = NULL; + } } void BKE_layer_eval_view_layer_indexed( |