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:
authorBastien Montagne <bastien@blender.org>2021-10-01 15:22:15 +0300
committerBastien Montagne <bastien@blender.org>2021-10-01 15:49:04 +0300
commit271210126e12713d70813937ddd4732993f7bb35 (patch)
treebe8e8ba7ab1d3e9e38c8ce216f0f0954af028ad1 /source/blender
parentf9acf21063d32152a98876ecc83f93ca92df18a0 (diff)
Fix T91834: Appending objects with shape keys into new file is broken.
Recent append refactor 'broke' this, we need special recursive care and handling of those nasty shpae keys... again.
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/windowmanager/intern/wm_files_link.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/source/blender/windowmanager/intern/wm_files_link.c b/source/blender/windowmanager/intern/wm_files_link.c
index ea0b0a9feaa..a73bea31669 100644
--- a/source/blender/windowmanager/intern/wm_files_link.c
+++ b/source/blender/windowmanager/intern/wm_files_link.c
@@ -597,6 +597,11 @@ static int foreach_libblock_append_callback(LibraryIDLinkCallbackData *cb_data)
}
if (!BKE_idtype_idcode_is_linkable(GS(id->name))) {
+ /* While we do not want to add non-linkable ID (shape keys...) to the list of linked items,
+ * unfortunately they can use fully linkable valid IDs too, like actions. Those need to be
+ * processed, so we need to recursively deal with them here. */
+ BKE_library_foreach_ID_link(
+ cb_data->bmain, id, foreach_libblock_append_callback, data, IDWALK_NOP);
return IDWALK_RET_NOP;
}