Commit: 6f90aa2016fe83b00f3a081e493fdf7561f74663
Author: Bastien Montagne
Date:   Mon Nov 30 10:48:55 2015 +0100
Branches: id-remap
https://developer.blender.org/rB6f90aa2016fe83b00f3a081e493fdf7561f74663

Fix issue when reloading a lib with selected object.

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

M       source/blender/blenkernel/intern/library_query.c
M       source/blender/windowmanager/intern/wm_operators.c

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

diff --git a/source/blender/blenkernel/intern/library_query.c 
b/source/blender/blenkernel/intern/library_query.c
index 0af3067..627b0fc 100644
--- a/source/blender/blenkernel/intern/library_query.c
+++ b/source/blender/blenkernel/intern/library_query.c
@@ -254,7 +254,8 @@ void BKE_library_foreach_ID_link(ID *id, 
LibraryIDLinkCallback callback, void *u
                                BKE_library_foreach_ID_link((ID 
*)scene->nodetree, callback, user_data, flag);
                        }
                        if (scene->basact) {
-                               CALLBACK_INVOKE(scene->basact->object, 
IDWALK_NOP);
+                               /* Eeeek... baseact is also in scene->base 
list, any good reason to call this twice? */
+                               CALLBACK_INVOKE(scene->basact->object, 
IDWALK_USER);
                        }
                        CALLBACK_INVOKE(scene->obedit, IDWALK_NOP);
 
diff --git a/source/blender/windowmanager/intern/wm_operators.c 
b/source/blender/windowmanager/intern/wm_operators.c
index d573482..bd2acb5 100644
--- a/source/blender/windowmanager/intern/wm_operators.c
+++ b/source/blender/windowmanager/intern/wm_operators.c
@@ -3123,7 +3123,7 @@ static int wm_lib_relocate_exec_do(bContext *C, 
wmOperator *op, const bool reloa
                                /* Since we asked for placeholders in case of 
missing IDs, we expect to always get a valid one. */
                                BLI_assert(new_id);
                                if (new_id) {
-//                                     printf("before remap, old_id users: %d 
(%p), new_id users: %d (%p)\n", old_id->us, old_id->lib, new_id->us, 
new_id->lib);
+//                                     printf("before remap, old_id users: %d 
(%p), new_id users: %d (%p)\n", old_id->us, old_id, new_id->us, new_id);
                                        /* Note that here, we also want to 
replace indirect usages. */
                                        BKE_libblock_remap_locked(bmain, 
old_id, new_id, false);
 
@@ -3253,7 +3253,7 @@ static int wm_lib_relocate_exec_do(bContext *C, 
wmOperator *op, const bool reloa
 
                                BLI_assert(old_id);
                                if (new_id) {
-                                       printf("before remap, old_id users: %d, 
new_id users: %d\n", old_id->us, new_id->us);
+//                                     printf("before remap, old_id users: %d, 
new_id users: %d\n", old_id->us, new_id->us);
                                        BKE_libblock_remap_locked(bmain, 
old_id, new_id, true);
 
                                        if (old_id->flag & LIB_FAKEUSER) {
@@ -3261,7 +3261,7 @@ static int wm_lib_relocate_exec_do(bContext *C, 
wmOperator *op, const bool reloa
                                                id_fake_user_set(new_id);
                                        }
 
-                                       printf("after remap, old_id users: %d, 
new_id users: %d\n", old_id->us, new_id->us);
+//                                     printf("after remap, old_id users: %d, 
new_id users: %d\n", old_id->us, new_id->us);
 
                                        /* In some cases, new_id might become 
direct link, remove parent of library in this case. */
                                        if (new_id->lib->parent && 
(new_id->flag & LIB_INDIRECT) == 0) {

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to