Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Ebb <matt@mke3.net>2010-01-05 09:49:29 +0300
committerMatt Ebb <matt@mke3.net>2010-01-05 09:49:29 +0300
commitd16ea70f51236d5272d9c93e25277974f1a7766b (patch)
treef1a1eb32359cceda6cdd81f883476a39e94a1845 /source/blender/editors/space_node/node_header.c
parent6e6560d9248e7bfad45409d6eb86640d7017d9f3 (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.c13
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);
}