Commit: 481a75a08ab601891d82cf8b113331dd205054bc
Author: Brecht Van Lommel
Date:   Thu Jan 3 15:17:01 2019 +0100
Branches: master
https://developer.blender.org/rB481a75a08ab601891d82cf8b113331dd205054bc

Fix T57177: redo select random operator selects hidden objects.

===================================================================

M       source/blender/blenkernel/intern/collection.c
M       source/blender/blenkernel/intern/layer.c
M       source/blender/blenloader/intern/readfile.c

===================================================================

diff --git a/source/blender/blenkernel/intern/collection.c 
b/source/blender/blenkernel/intern/collection.c
index a3782deecad..bd7757a29c6 100644
--- a/source/blender/blenkernel/intern/collection.c
+++ b/source/blender/blenkernel/intern/collection.c
@@ -776,8 +776,9 @@ bool BKE_collection_is_in_scene(Collection *collection)
 
 void BKE_collections_after_lib_link(Main *bmain)
 {
-       /* Update view layer collections to match any changes in linked
-        * collections after file load. */
+       /* Need to update layer collections because objects might have changed
+        * in linked files, and because undo push does not include updated base
+        * flags since those are refreshed after the operator completes. */
        BKE_main_collection_sync(bmain);
 }
 
diff --git a/source/blender/blenkernel/intern/layer.c 
b/source/blender/blenkernel/intern/layer.c
index 572dba4d83b..28833383029 100644
--- a/source/blender/blenkernel/intern/layer.c
+++ b/source/blender/blenkernel/intern/layer.c
@@ -727,6 +727,7 @@ static short layer_collection_sync(
                        }
 
                        if (base->flag & BASE_HIDDEN) {
+                               base->flag &= ~BASE_VISIBLE;
                                view_layer->runtime_flag |= VIEW_LAYER_HAS_HIDE;
                                lc->runtime_flag |= 
LAYER_COLLECTION_HAS_HIDDEN_OBJECTS;
                        }
diff --git a/source/blender/blenloader/intern/readfile.c 
b/source/blender/blenloader/intern/readfile.c
index 98d041a4673..dd3ce16f3f4 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -9067,9 +9067,10 @@ BlendFileData *blo_read_file_internal(FileData *fd, 
const char *filepath)
                /* Do not apply in undo case! */
                lib_verify_nodetree(bfd->main, true);  /* Needed to ensure we 
have typeinfo in nodes... */
                BKE_main_override_static_update(bfd->main);
-               BKE_collections_after_lib_link(bfd->main);
        }
 
+       BKE_collections_after_lib_link(bfd->main);
+
        lib_verify_nodetree(bfd->main, true);
        fix_relpaths_library(fd->relabase, bfd->main); /* make all relative 
paths, relative to the open blend file */

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to