Fix #104383: don't update declaration for clipboard copy
When nodes are copied to the clipboard, they don't need their declaration. For nodes with dynamic declaration that might depend on the node tree itself, the declaration could not be build anyway, because the node-clipboard does not have a node tree. Pull Request #104432
This commit is contained in:
@@ -2342,8 +2342,10 @@ bNode *node_copy_with_mapping(bNodeTree *dst_tree,
|
||||
node_dst->typeinfo->copyfunc_api(&ptr, &node_src);
|
||||
}
|
||||
|
||||
/* Reset the declaration of the new node. */
|
||||
nodeDeclarationEnsure(dst_tree, node_dst);
|
||||
/* Reset the declaration of the new node in real tree. */
|
||||
if (dst_tree != nullptr) {
|
||||
nodeDeclarationEnsure(dst_tree, node_dst);
|
||||
}
|
||||
|
||||
return node_dst;
|
||||
}
|
||||
@@ -3617,6 +3619,8 @@ bool nodeDeclarationEnsureOnOutdatedNode(bNodeTree *ntree, bNode *node)
|
||||
return false;
|
||||
}
|
||||
if (node->typeinfo->declare_dynamic) {
|
||||
BLI_assert(ntree != nullptr);
|
||||
BLI_assert(node != nullptr);
|
||||
node->runtime->declaration = new blender::nodes::NodeDeclaration();
|
||||
blender::nodes::build_node_declaration_dynamic(*ntree, *node, *node->runtime->declaration);
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user