Merge branch 'master' into blender2.8
[blender.git] / source / blender / blenkernel / intern / library_remap.c
index 785fb44c9460f1c4739750434473769273e986b5..3b757a46e2e79da8ec30a8fc8f656e43ddbd54ee 100644 (file)
@@ -377,6 +377,18 @@ static void libblock_remap_data_postprocess_obdata_relink(Main *UNUSED(bmain), O
        }
 }
 
+static void libblock_remap_data_postprocess_nodetree_update(Main *bmain, ID *new_id)
+{
+       /* Verify all nodetree user nodes. */
+       ntreeVerifyNodes(bmain, new_id);
+
+       /* Update node trees as necessary. */
+       FOREACH_NODETREE(bmain, ntree, id) {
+               /* make an update call for the tree */
+               ntreeUpdateTree(bmain, ntree);
+       } FOREACH_NODETREE_END
+}
+
 /**
  * Execute the 'data' part of the remapping (that is, all ID pointers from other ID datablocks).
  *
@@ -550,6 +562,8 @@ void BKE_libblock_remap_locked(
                default:
                        break;
        }
+       /* Node trees may virtually use any kind of data-block... */
+       libblock_remap_data_postprocess_nodetree_update(bmain, new_id);
 
        /* Full rebuild of DAG! */
        DAG_relations_tag_update(bmain);