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:
authorLukas Toenne <lukas.toenne@googlemail.com>2012-03-14 22:10:57 +0400
committerLukas Toenne <lukas.toenne@googlemail.com>2012-03-14 22:10:57 +0400
commit6f7eb383c872ead4182ee4257d8072d8582e0ef7 (patch)
treef20e427762fe7230eb2746e80e3945ddab9d4b30 /source/blender/editors
parent6624090a23fbb67fe45bab2dcbfe4e211c729a14 (diff)
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).
Diffstat (limited to 'source/blender/editors')
-rw-r--r--source/blender/editors/space_node/node_edit.c26
-rw-r--r--source/blender/editors/space_node/node_intern.h4
-rw-r--r--source/blender/editors/space_node/node_select.c8
3 files changed, 18 insertions, 20 deletions
diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c
index 8587133976d..235e8e6c605 100644
--- a/source/blender/editors/space_node/node_edit.c
+++ b/source/blender/editors/space_node/node_edit.c
@@ -825,8 +825,8 @@ void snode_make_group_editable(SpaceNode *snode, bNode *gnode)
/* 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 @@ bNode *node_add_node(SpaceNode *snode, Main *bmain, Scene *scene, bNodeTemplate
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 @@ static int node_duplicate_exec(bContext *C, wmOperator *op)
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 @@ static int node_duplicate_exec(bContext *C, wmOperator *op)
/* 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 @@ static int node_link_modal(bContext *C, wmOperator *op, wmEvent *event)
}
/* hilight target socket */
- tsock->flag |= SELECT;
+ node_socket_select(tnode, tsock);
}
else {
if (link->tonode || link->tosock) {
@@ -2375,7 +2369,7 @@ static int node_link_modal(bContext *C, wmOperator *op, wmEvent *event)
}
/* hilight target socket */
- tsock->flag |= SELECT;
+ node_socket_select(tnode, tsock);
}
else {
if (link->tonode || link->tosock) {
@@ -2478,7 +2472,7 @@ static int node_link_init(SpaceNode *snode, bNodeLinkDrag *nldrag)
/* 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 @@ static int node_link_init(SpaceNode *snode, bNodeLinkDrag *nldrag)
/* 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;
diff --git a/source/blender/editors/space_node/node_intern.h b/source/blender/editors/space_node/node_intern.h
index c2a418af064..ea8fdd8059b 100644
--- a/source/blender/editors/space_node/node_intern.h
+++ b/source/blender/editors/space_node/node_intern.h
@@ -81,7 +81,11 @@ void node_operatortypes(void);
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);
diff --git a/source/blender/editors/space_node/node_select.c b/source/blender/editors/space_node/node_select.c
index 3a92f90675f..f354fd7472d 100644
--- a/source/blender/editors/space_node/node_select.c
+++ b/source/blender/editors/space_node/node_select.c
@@ -173,12 +173,12 @@ static void node_sort(bNodeTree *ntree)
}
}
-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 @@ static void node_toggle(bNode *node)
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 @@ static void node_socket_select(bNode *node, bNodeSocket *sock)
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;