[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44881] trunk/blender/source/blender/ editors/space_node: Use helper functions in node_select when selecting/ deselecting nodes and sockets in operators.
Lukas Toenne
lukas.toenne at googlemail.com
Wed Mar 14 19:10:58 CET 2012
Revision: 44881
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44881
Author: lukastoenne
Date: 2012-03-14 18:10:57 +0000 (Wed, 14 Mar 2012)
Log Message:
-----------
Use helper functions in node_select when selecting/deselecting nodes and sockets in operators. This ensure that sockets are not selected on their own (parent node is always selected too).
Modified Paths:
--------------
trunk/blender/source/blender/editors/space_node/node_edit.c
trunk/blender/source/blender/editors/space_node/node_intern.h
trunk/blender/source/blender/editors/space_node/node_select.c
Modified: trunk/blender/source/blender/editors/space_node/node_edit.c
===================================================================
--- trunk/blender/source/blender/editors/space_node/node_edit.c 2012-03-14 17:52:50 UTC (rev 44880)
+++ trunk/blender/source/blender/editors/space_node/node_edit.c 2012-03-14 18:10:57 UTC (rev 44881)
@@ -825,8 +825,8 @@
/* deselect all other nodes, so we can also do grabbing of entire subtree */
for(node= snode->nodetree->nodes.first; node; node= node->next)
- node->flag &= ~SELECT;
- gnode->flag |= SELECT;
+ node_deselect(node);
+ node_select(gnode);
}
else
snode->edittree= snode->nodetree;
@@ -2115,7 +2115,7 @@
if(node) {
node->locx= locx;
node->locy= locy + 60.0f; // arbitrary.. so its visible, (0,0) is top of node
- node->flag |= SELECT;
+ node_select(node);
gnode= node_tree_get_editgroup(snode->nodetree);
if(gnode) {
@@ -2157,7 +2157,6 @@
SpaceNode *snode= CTX_wm_space_node(C);
bNodeTree *ntree= snode->edittree;
bNode *node, *newnode, *lastnode;
- bNodeSocket *sock;
bNodeLink *link, *newlink, *lastlink;
int keep_inputs = RNA_boolean_get(op->ptr, "keep_inputs");
@@ -2220,14 +2219,9 @@
/* has been set during copy above */
newnode = node->new_node;
- node->flag &= ~(NODE_SELECT|NODE_ACTIVE);
- newnode->flag |= NODE_SELECT;
-
- /* deselect old node sockets */
- for (sock=node->inputs.first; sock; sock=sock->next)
- sock->flag &= ~SELECT;
- for (sock=node->outputs.first; sock; sock=sock->next)
- sock->flag &= ~SELECT;
+ node_deselect(node);
+ node->flag &= ~NODE_ACTIVE;
+ node_select(newnode);
}
/* make sure we don't copy new nodes again! */
@@ -2340,7 +2334,7 @@
}
/* hilight target socket */
- tsock->flag |= SELECT;
+ node_socket_select(tnode, tsock);
}
else {
if (link->tonode || link->tosock) {
@@ -2375,7 +2369,7 @@
}
/* hilight target socket */
- tsock->flag |= SELECT;
+ node_socket_select(tnode, tsock);
}
else {
if (link->tonode || link->tosock) {
@@ -2478,7 +2472,7 @@
/* hilight source socket only */
node_deselect_all_output_sockets(snode, 0);
- nldrag->sock->flag |= SELECT;
+ node_socket_select(nldrag->node, nldrag->sock);
}
/* or an input? */
else if(node_find_indicated_socket(snode, &nldrag->node, &nldrag->sock, SOCK_IN)) {
@@ -2504,7 +2498,7 @@
/* hilight source socket only */
node_deselect_all_input_sockets(snode, 0);
- nldrag->sock->flag |= SELECT;
+ node_socket_select(nldrag->node, nldrag->sock);
}
return in_out;
Modified: trunk/blender/source/blender/editors/space_node/node_intern.h
===================================================================
--- trunk/blender/source/blender/editors/space_node/node_intern.h 2012-03-14 17:52:50 UTC (rev 44880)
+++ trunk/blender/source/blender/editors/space_node/node_intern.h 2012-03-14 18:10:57 UTC (rev 44881)
@@ -81,7 +81,11 @@
void node_keymap(wmKeyConfig *keyconf);
/* node_select.c */
+void node_select(struct bNode *node);
+void node_deselect(struct bNode *node);
void node_deselect_all(struct SpaceNode *snode);
+void node_socket_select(struct bNode *node, struct bNodeSocket *sock);
+void node_socket_deselect(struct bNode *node, struct bNodeSocket *sock, int deselect_node);
void node_deselect_all_input_sockets(struct SpaceNode *snode, int deselect_nodes);
void node_deselect_all_output_sockets(struct SpaceNode *snode, int deselect_nodes);
int node_select_same_type(struct SpaceNode *snode);
Modified: trunk/blender/source/blender/editors/space_node/node_select.c
===================================================================
--- trunk/blender/source/blender/editors/space_node/node_select.c 2012-03-14 17:52:50 UTC (rev 44880)
+++ trunk/blender/source/blender/editors/space_node/node_select.c 2012-03-14 18:10:57 UTC (rev 44881)
@@ -173,12 +173,12 @@
}
}
-static void node_select(bNode *node)
+void node_select(bNode *node)
{
node->flag |= SELECT;
}
-static void node_deselect(bNode *node)
+void node_deselect(bNode *node)
{
bNodeSocket *sock;
@@ -199,7 +199,7 @@
node_select(node);
}
-static void node_socket_select(bNode *node, bNodeSocket *sock)
+void node_socket_select(bNode *node, bNodeSocket *sock)
{
sock->flag |= SELECT;
@@ -208,7 +208,7 @@
node->flag |= SELECT;
}
-static void node_socket_deselect(bNode *node, bNodeSocket *sock, int deselect_node)
+void node_socket_deselect(bNode *node, bNodeSocket *sock, int deselect_node)
{
sock->flag &= ~SELECT;
More information about the Bf-blender-cvs
mailing list