diff options
author | Jacques Lucke <jacques@blender.org> | 2022-02-01 19:53:19 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2022-02-01 19:53:19 +0300 |
commit | 2110e271f52f641d98fc4f92afc0988b29806479 (patch) | |
tree | 545a6bb349c693d10dd672bc76b0d0df7410451a /source/blender/editors/space_node | |
parent | 32b33e91ebfa0629277ba28490ba9a842b0265ab (diff) | |
parent | 2bd71b49e79325863bfe3c561fa03653231c9914 (diff) |
Merge branch 'blender-v3.1-release'
Diffstat (limited to 'source/blender/editors/space_node')
-rw-r--r-- | source/blender/editors/space_node/node_group.cc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/source/blender/editors/space_node/node_group.cc b/source/blender/editors/space_node/node_group.cc index 73e419d667a..3d3f8378916 100644 --- a/source/blender/editors/space_node/node_group.cc +++ b/source/blender/editors/space_node/node_group.cc @@ -776,6 +776,18 @@ static void node_group_make_insert_selected(const bContext &C, bNodeTree &ntree, ListBase anim_basepaths = {nullptr, nullptr}; + /* Detach unselected nodes inside frames when the frame is put into the group. Otherwise the + * `parent` pointer becomes dangling. */ + LISTBASE_FOREACH (bNode *, node, &ntree.nodes) { + if (node->parent == nullptr) { + continue; + } + if (node_group_make_use_node(*node->parent, gnode) && + !node_group_make_use_node(*node, gnode)) { + nodeDetachNode(node); + } + } + /* move nodes over */ LISTBASE_FOREACH_MUTABLE (bNode *, node, &ntree.nodes) { if (node_group_make_use_node(*node, gnode)) { |