diff options
author | Matt Ebb <matt@mke3.net> | 2010-01-05 09:49:29 +0300 |
---|---|---|
committer | Matt Ebb <matt@mke3.net> | 2010-01-05 09:49:29 +0300 |
commit | d16ea70f51236d5272d9c93e25277974f1a7766b (patch) | |
tree | f1a1eb32359cceda6cdd81f883476a39e94a1845 /source/blender/editors/space_node/node_header.c | |
parent | 6e6560d9248e7bfad45409d6eb86640d7017d9f3 (diff) |
* Modifications to node editor 'make links' tool, after some requests by Soenke
Now it automatically decides how to connect the nodes up, based on the node positions. This lets you do fun stuff like in this video: http://www.vimeo.com/8548698
Diffstat (limited to 'source/blender/editors/space_node/node_header.c')
-rw-r--r-- | source/blender/editors/space_node/node_header.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/source/blender/editors/space_node/node_header.c b/source/blender/editors/space_node/node_header.c index 6426856dfdd..d8a14c6412b 100644 --- a/source/blender/editors/space_node/node_header.c +++ b/source/blender/editors/space_node/node_header.c @@ -78,8 +78,17 @@ static void do_node_add(bContext *C, void *arg, int event) node= node_add_node(snode, CTX_data_scene(C), event, snode->mx, snode->my); - /* uses test flag */ - snode_autoconnect(snode, node, NODE_TEST, 0); + /* select previous selection before autoconnect */ + for(node= snode->edittree->nodes.first; node; node= node->next) { + if(node->flag & NODE_TEST) node->flag |= NODE_SELECT; + } + + snode_autoconnect(snode, 1, 0); + + /* deselect after autoconnection */ + for(node= snode->edittree->nodes.first; node; node= node->next) { + if(node->flag & NODE_TEST) node->flag &= ~NODE_SELECT; + } snode_handle_recalc(C, snode); } |