diff options
Diffstat (limited to 'source/blender/editors/space_node/node_add.c')
-rw-r--r-- | source/blender/editors/space_node/node_add.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/source/blender/editors/space_node/node_add.c b/source/blender/editors/space_node/node_add.c index 20429d832b5..c7bc9146965 100644 --- a/source/blender/editors/space_node/node_add.c +++ b/source/blender/editors/space_node/node_add.c @@ -155,13 +155,14 @@ static int add_reroute_exec(bContext *C, wmOperator *op) bNodeLink *link; float insertPoint[2]; - ED_preview_kill_jobs(C); - for (link = snode->edittree->links.first; link; link = link->next) { if (add_reroute_intersect_check(link, mcoords, i, insertPoint)) { bNodeTemplate ntemp; bNode *rerouteNode; + /* always first */ + ED_preview_kill_jobs(C); + node_deselect_all(snode); ntemp.type = NODE_REROUTE; @@ -178,15 +179,17 @@ static int add_reroute_exec(bContext *C, wmOperator *op) link->fromnode = rerouteNode; link->fromsock = rerouteNode->outputs.first; - break; // add one reroute at the time. + /* always last */ + ntreeUpdateTree(snode->edittree); + snode_notify(C, snode); + snode_dag_update(C, snode); + + return OPERATOR_FINISHED; // add one reroute at the time. } } - ntreeUpdateTree(snode->edittree); - snode_notify(C, snode); - snode_dag_update(C, snode); + return OPERATOR_CANCELLED; - return OPERATOR_FINISHED; } return OPERATOR_CANCELLED | OPERATOR_PASS_THROUGH; |