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:
authorCampbell Barton <ideasman42@gmail.com>2012-08-04 03:44:19 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-08-04 03:44:19 +0400
commitee86f7fe159b5f90978b4931c4262a4aa95afab7 (patch)
tree741fc6d39a29139b38c091478525c73a23eec3f7
parent28ab27a49a7c34a46fecb31547e7fadf001ead5b (diff)
dont re-combute composite nodes when knife and add-socket operators don't add any links.
-rw-r--r--source/blender/editors/space_node/node_add.c17
-rw-r--r--source/blender/editors/space_node/node_relationships.c23
2 files changed, 27 insertions, 13 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;
diff --git a/source/blender/editors/space_node/node_relationships.c b/source/blender/editors/space_node/node_relationships.c
index cda736d199a..5c59555a0ed 100644
--- a/source/blender/editors/space_node/node_relationships.c
+++ b/source/blender/editors/space_node/node_relationships.c
@@ -836,24 +836,35 @@ static int cut_links_exec(bContext *C, wmOperator *op)
RNA_END;
if (i > 1) {
+ int found = FALSE;
bNodeLink *link, *next;
- ED_preview_kill_jobs(C);
-
for (link = snode->edittree->links.first; link; link = next) {
next = link->next;
if (cut_links_intersect(link, mcoords, i)) {
+
+ if (found == FALSE) {
+ ED_preview_kill_jobs(C);
+ found = TRUE;
+ }
+
snode_update(snode, link->tonode);
nodeRemLink(snode->edittree, link);
}
}
- ntreeUpdateTree(snode->edittree);
- snode_notify(C, snode);
- snode_dag_update(C, snode);
+ if (found) {
+ ntreeUpdateTree(snode->edittree);
+ snode_notify(C, snode);
+ snode_dag_update(C, snode);
+
+ return OPERATOR_FINISHED;
+ }
+ else {
+ return OPERATOR_CANCELLED;
+ }
- return OPERATOR_FINISHED;
}
return OPERATOR_CANCELLED | OPERATOR_PASS_THROUGH;