Objects: when active object gets hidden, make it inactive.

This commit is contained in:
Brecht Van Lommel 2018-06-18 14:46:56 +02:00
parent 7c836ac30a
commit fec97ec949
1 changed files with 10 additions and 1 deletions

View File

@ -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(