diff options
author | Lukas Toenne <lukas.toenne@googlemail.com> | 2011-01-18 17:49:06 +0300 |
---|---|---|
committer | Lukas Toenne <lukas.toenne@googlemail.com> | 2011-01-18 17:49:06 +0300 |
commit | 121f428097e8874a4f9a3b3ae8b783865a3a8eed (patch) | |
tree | 0d1e6f2c4422c2ca7bfa27379690efa40cf99b31 /source/blender | |
parent | 2167dc7f390468e196e64367e483366ea35767c7 (diff) |
Added group verification after autoconnect to avoid linked+external group sockets.
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/editors/space_node/node_edit.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index 90e2ef5ebc7..cf5822d0461 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -1407,7 +1407,7 @@ void snode_autoconnect(SpaceNode *snode, int allow_multiple, int replace) ListBase *nodelist = MEM_callocN(sizeof(ListBase), "items_list"); bNodeListItem *nli; bNode *node; - int i; + int i, numlinks=0; for(node= snode->edittree->nodes.first; node; node= node->next) { if(node->flag & NODE_SELECT) { @@ -1445,11 +1445,15 @@ void snode_autoconnect(SpaceNode *snode, int allow_multiple, int replace) nodeRemSocketLinks(snode->edittree, sock_to); nodeAddLink(snode->edittree, node_fr, sock_fr, node_to, sock_to); NodeTagChanged(snode->edittree, node_to); + ++numlinks; break; } } - ntreeSolveOrder(snode->edittree); + if (numlinks > 0) { + node_tree_verify_groups(snode->nodetree); + ntreeSolveOrder(snode->edittree); + } BLI_freelistN(nodelist); MEM_freeN(nodelist); |