[Bf-blender-cvs] [481a75a08ab] master: Fix T57177: redo select random operator selects hidden objects.

Brecht Van Lommel noreply at git.blender.org
Thu Jan 3 15:20:10 CET 2019


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 */



More information about the Bf-blender-cvs mailing list