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>2019-03-07 12:33:57 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-03-07 12:34:10 +0300
commit219e2f976d077c16c28d72a2f6763c01230c5bf8 (patch)
treeba40e7f79947dd11cae4a08ed813f920c00fbfd7 /source/blender/editors/space_node/node_select.c
parente52e0c83d717b46afcce36b23e3f6b32f5cb535b (diff)
Tool System: use set/add/subtract for all box select operators
Diffstat (limited to 'source/blender/editors/space_node/node_select.c')
-rw-r--r--source/blender/editors/space_node/node_select.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/source/blender/editors/space_node/node_select.c b/source/blender/editors/space_node/node_select.c
index 33e4134b6e7..88687af7444 100644
--- a/source/blender/editors/space_node/node_select.c
+++ b/source/blender/editors/space_node/node_select.c
@@ -540,15 +540,18 @@ static int node_box_select_exec(bContext *C, wmOperator *op)
{
SpaceNode *snode = CTX_wm_space_node(C);
ARegion *ar = CTX_wm_region(C);
- bNode *node;
rctf rectf;
- const bool select = !RNA_boolean_get(op->ptr, "deselect");
- const bool extend = RNA_boolean_get(op->ptr, "extend");
WM_operator_properties_border_to_rctf(op, &rectf);
UI_view2d_region_to_view_rctf(&ar->v2d, &rectf, &rectf);
- for (node = snode->edittree->nodes.first; node; node = node->next) {
+ const eSelectOp sel_op = RNA_enum_get(op->ptr, "mode");
+ const bool select = (sel_op != SEL_OP_SUB);
+ if (SEL_OP_USE_PRE_DESELECT(sel_op)) {
+ ED_node_select_all(&snode->edittree->nodes, SEL_DESELECT);
+ }
+
+ for (bNode *node = snode->edittree->nodes.first; node; node = node->next) {
bool is_inside;
if (node->type == NODE_FRAME) {
is_inside = BLI_rctf_inside_rctf(&rectf, &node->totr);
@@ -560,9 +563,6 @@ static int node_box_select_exec(bContext *C, wmOperator *op)
if (is_inside) {
nodeSetSelected(node, select);
}
- else if (!extend) {
- nodeSetSelected(node, false);
- }
}
ED_node_sort(snode->edittree);
@@ -601,9 +601,11 @@ void NODE_OT_select_box(wmOperatorType *ot)
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
- /* rna */
- WM_operator_properties_gesture_box_select(ot);
+ /* properties */
RNA_def_boolean(ot->srna, "tweak", 0, "Tweak", "Only activate when mouse is not over a node - useful for tweak gesture");
+
+ WM_operator_properties_gesture_box(ot);
+ WM_operator_properties_select_operation_simple(ot);
}
/* ****** Circle Select ****** */