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:
authorTon Roosendaal <ton@blender.org>2009-01-28 18:39:39 +0300
committerTon Roosendaal <ton@blender.org>2009-01-28 18:39:39 +0300
commit8006134a9c8c40102375f0c1da317c197df0de75 (patch)
treebcbc9eb363d75bb32e9840fb1bb1b4b0e5641e0f /source/blender/editors/space_node
parent3f0616447172747ca55b3113d99067be59387c38 (diff)
2.5
Made 'select-tweak-grab' work in 3d window, fcurve and nodes. For nodes it works with both left/right, the others follow user preset for select. Tweak is a WM event, which also follows user preset for tablet-style tweaks (release = apply). You enable tweak events with an operator WM_OT_tweak_gesture. Keymap entries can assign to left/middle/right button or to action/select button tweaks.
Diffstat (limited to 'source/blender/editors/space_node')
-rw-r--r--source/blender/editors/space_node/node_ops.c4
-rw-r--r--source/blender/editors/space_node/node_select.c5
-rw-r--r--source/blender/editors/space_node/node_state.c14
3 files changed, 14 insertions, 9 deletions
diff --git a/source/blender/editors/space_node/node_ops.c b/source/blender/editors/space_node/node_ops.c
index 09a5d12bd34..55aa53e9821 100644
--- a/source/blender/editors/space_node/node_ops.c
+++ b/source/blender/editors/space_node/node_ops.c
@@ -73,5 +73,9 @@ void node_keymap(struct wmWindowManager *wm)
WM_keymap_add_item(keymap, "NODE_OT_border_select", BKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "NODE_OT_delete_selection", XKEY, KM_PRESS, 0, 0);
+ /* generates event, needs to be after select to work */
+ WM_keymap_add_item(keymap, "WM_OT_tweak_gesture", ACTIONMOUSE, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "WM_OT_tweak_gesture", SELECTMOUSE, KM_PRESS, 0, 0);
+
transform_keymap_for_space(wm, keymap, SPACE_NODE);
}
diff --git a/source/blender/editors/space_node/node_select.c b/source/blender/editors/space_node/node_select.c
index dad10d34eac..25d9d45a934 100644
--- a/source/blender/editors/space_node/node_select.c
+++ b/source/blender/editors/space_node/node_select.c
@@ -125,10 +125,9 @@ static int node_select_exec(bContext *C, wmOperator *op)
}
WM_event_add_notifier(C, NC_SCENE|ND_NODES, NULL); /* Do we need to pass the scene? */
-
- //WM_event_add_modal_handler(C, &window->handlers, op);
- return /*OPERATOR_RUNNING_MODAL;*/ OPERATOR_FINISHED;
+ /* allow tweak event to work too */
+ return OPERATOR_PASS_THROUGH;
}
static int node_select_modal(bContext *C, wmOperator *op, wmEvent *event)
diff --git a/source/blender/editors/space_node/node_state.c b/source/blender/editors/space_node/node_state.c
index 0fe1acd8a1a..908e990fadb 100644
--- a/source/blender/editors/space_node/node_state.c
+++ b/source/blender/editors/space_node/node_state.c
@@ -126,7 +126,7 @@ static int do_header_hidden_node(SpaceNode *snode, bNode *node, float mx, float
return 0;
}
-static void node_toggle_visibility(SpaceNode *snode, ARegion *ar, short *mval)
+static int node_toggle_visibility(SpaceNode *snode, ARegion *ar, short *mval)
{
bNode *node;
float mx, my;
@@ -140,16 +140,17 @@ static void node_toggle_visibility(SpaceNode *snode, ARegion *ar, short *mval)
if(node->flag & NODE_HIDDEN) {
if(do_header_hidden_node(snode, node, mx, my)) {
ED_region_tag_redraw(ar);
- break;
+ return 1;
}
}
else {
if(do_header_node(snode, node, mx, my)) {
ED_region_tag_redraw(ar);
- break;
+ return 1;
}
}
}
+ return 0;
}
static int node_toggle_visibility_exec(bContext *C, wmOperator *op)
@@ -160,9 +161,10 @@ static int node_toggle_visibility_exec(bContext *C, wmOperator *op)
mval[0] = RNA_int_get(op->ptr, "mouse_x");
mval[1] = RNA_int_get(op->ptr, "mouse_y");
- node_toggle_visibility(snode, ar, mval);
-
- return OPERATOR_FINISHED;
+ if(node_toggle_visibility(snode, ar, mval))
+ return OPERATOR_FINISHED;
+ else
+ return OPERATOR_PASS_THROUGH;
}
static int node_toggle_visibility_invoke(bContext *C, wmOperator *op, wmEvent *event)