Fix T96386: crash when changing shader to node group in properties

The previous code updated the wrong node tree. The result was that
the new group node did not have the socket that was supposed to
be linked.
This commit is contained in:
Jacques Lucke
2022-03-16 11:23:45 +01:00
parent a45108840e
commit 79ae5f5014

View File

@@ -69,11 +69,11 @@ static bool node_link_item_compare(bNode *node, NodeLinkItem *item)
return true;
}
static void node_link_item_apply(Main *bmain, bNode *node, NodeLinkItem *item)
static void node_link_item_apply(bNodeTree *ntree, bNode *node, NodeLinkItem *item)
{
if (ELEM(node->type, NODE_GROUP, NODE_CUSTOM_GROUP)) {
node->id = (ID *)item->ngroup;
BKE_ntree_update_main_tree(bmain, item->ngroup, nullptr);
BKE_ntree_update_tag_node_property(ntree, node);
}
else {
/* nothing to do for now */
@@ -237,7 +237,8 @@ static void node_socket_add_replace(const bContext *C,
nodePositionRelative(node_from, node_to, sock_from_tmp, sock_to);
}
node_link_item_apply(bmain, node_from, item);
node_link_item_apply(ntree, node_from, item);
ED_node_tree_propagate_change(C, bmain, ntree);
}
nodeSetActive(ntree, node_from);