diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-06-07 17:30:19 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-06-07 17:31:10 +0300 |
commit | 86aaa3efba7c129378649394da8a5134076eddfe (patch) | |
tree | 66ac6f9d7680c61474189fd028fbeaeede6ce33e | |
parent | 819ad49d29368371118b9708baff391f39bde715 (diff) |
Fix T55126: COW problem: there is an active object even if unselectable
-rw-r--r-- | source/blender/blenkernel/intern/layer.c | 10 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/object_update.c | 1 |
2 files changed, 11 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/layer.c b/source/blender/blenkernel/intern/layer.c index 16e349465f6..c7bb24cdcee 100644 --- a/source/blender/blenkernel/intern/layer.c +++ b/source/blender/blenkernel/intern/layer.c @@ -1264,6 +1264,16 @@ void BKE_layer_eval_view_layer( /* Store base in the array. */ view_layer->object_bases_array[base_index++] = base; } + 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) { + base_orig->flag = base_eval->flag; + base_orig = base_orig->next; + base_eval = base_eval->next; + } + } } void BKE_layer_eval_view_layer_indexed( diff --git a/source/blender/blenkernel/intern/object_update.c b/source/blender/blenkernel/intern/object_update.c index 852d8197a6c..3b684ebfd94 100644 --- a/source/blender/blenkernel/intern/object_update.c +++ b/source/blender/blenkernel/intern/object_update.c @@ -145,6 +145,7 @@ void BKE_object_eval_done(Depsgraph *depsgraph, Object *ob) Object *ob_orig = DEG_get_original_object(ob); copy_m4_m4(ob_orig->obmat, ob->obmat); ob_orig->transflag = ob->transflag; + ob_orig->flag = ob->flag; } } |