[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [49544] trunk/blender/source/blender/ editors/space_node: dont re-combute composite nodes when knife and add-socket operators don' t add any links.

Campbell Barton ideasman42 at gmail.com
Sat Aug 4 01:44:19 CEST 2012


Revision: 49544
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49544
Author:   campbellbarton
Date:     2012-08-03 23:44:19 +0000 (Fri, 03 Aug 2012)
Log Message:
-----------
dont re-combute composite nodes when knife and add-socket operators don't add any links.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_node/node_add.c
    trunk/blender/source/blender/editors/space_node/node_relationships.c

Modified: trunk/blender/source/blender/editors/space_node/node_add.c
===================================================================
--- trunk/blender/source/blender/editors/space_node/node_add.c	2012-08-03 22:52:59 UTC (rev 49543)
+++ trunk/blender/source/blender/editors/space_node/node_add.c	2012-08-03 23:44:19 UTC (rev 49544)
@@ -155,13 +155,14 @@
 		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 @@
 				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;

Modified: trunk/blender/source/blender/editors/space_node/node_relationships.c
===================================================================
--- trunk/blender/source/blender/editors/space_node/node_relationships.c	2012-08-03 22:52:59 UTC (rev 49543)
+++ trunk/blender/source/blender/editors/space_node/node_relationships.c	2012-08-03 23:44:19 UTC (rev 49544)
@@ -836,24 +836,35 @@
 	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;
+			return OPERATOR_FINISHED;
+		}
+		else {
+			return OPERATOR_CANCELLED;
+		}
+
 	}
 
 	return OPERATOR_CANCELLED | OPERATOR_PASS_THROUGH;




More information about the Bf-blender-cvs mailing list