Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2018-05-24 10:04:25 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-05-24 10:08:36 +0300
commit5df8a6eb9447a42cf6817e89543c5055e9aab225 (patch)
tree21d38833320a09ae2167bc17f683337f1f89e4b2 /source/blender/blenkernel/intern/layer.c
parent153c7746aba64696f58b52e6e4c7935b0e89eb43 (diff)
Correct fix for view center
The view layers active object was not being copied.
Diffstat (limited to 'source/blender/blenkernel/intern/layer.c')
-rw-r--r--source/blender/blenkernel/intern/layer.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/layer.c b/source/blender/blenkernel/intern/layer.c
index 648d5f02d4d..c6795ce8278 100644
--- a/source/blender/blenkernel/intern/layer.c
+++ b/source/blender/blenkernel/intern/layer.c
@@ -382,7 +382,15 @@ void BKE_view_layer_copy_data(
view_layer_dst->object_bases_hash = NULL;
/* Copy layer collections and object bases. */
- BLI_duplicatelist(&view_layer_dst->object_bases, &view_layer_src->object_bases);
+ /* Inline 'BLI_duplicatelist' and update the active base. */
+ for (Base *base_src = view_layer_src->object_bases.first; base_src; base_src = base_src->next) {
+ Base *base_dst = MEM_dupallocN(base_src);
+ BLI_addtail(&view_layer_dst->object_bases, base_dst);
+ if (view_layer_src->basact == base_src) {
+ view_layer_dst->basact = base_dst;
+ }
+ }
+
layer_collections_copy_data(&view_layer_dst->layer_collections, &view_layer_src->layer_collections);
// TODO: not always safe to free BKE_layer_collection_sync(scene_dst, view_layer_dst);