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:
authorBrecht Van Lommel <brechtvanlommel@gmail.com>2018-11-30 20:27:04 +0300
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2018-11-30 20:27:36 +0300
commit8d4da34883b25195da28024dc51b2c9b3347d504 (patch)
treedf2f5cd9122ee604b7f77e4a336c9736d9d2cc87 /source/blender/editors/space_node/node_select.c
parented5202ac6ad539d1c1734e8ea456245f42dc9bbf (diff)
Fix T58267: node socket grabbing not working well with box select tool.
Diffstat (limited to 'source/blender/editors/space_node/node_select.c')
-rw-r--r--source/blender/editors/space_node/node_select.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/source/blender/editors/space_node/node_select.c b/source/blender/editors/space_node/node_select.c
index eb233f3fea1..465b7a6d789 100644
--- a/source/blender/editors/space_node/node_select.c
+++ b/source/blender/editors/space_node/node_select.c
@@ -560,16 +560,25 @@ static int node_box_select_invoke(bContext *C, wmOperator *op, const wmEvent *ev
const bool tweak = RNA_boolean_get(op->ptr, "tweak");
if (tweak) {
- /* prevent initiating the box select if the mouse is over a node */
- /* this allows box select on empty space, but drag-translate on nodes */
+ /* prevent initiating the box select if the mouse is over a node or
+ * node socket. this allows box select on empty space, but drag-translate
+ * on nodes */
SpaceNode *snode = CTX_wm_space_node(C);
ARegion *ar = CTX_wm_region(C);
- float mx, my;
+ float mouse[2];
- UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], &mx, &my);
+ UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], &mouse[0], &mouse[1]);
- if (node_under_mouse_tweak(snode->edittree, mx, my))
+ if (node_under_mouse_tweak(snode->edittree, mouse[0], mouse[1])) {
return OPERATOR_CANCELLED | OPERATOR_PASS_THROUGH;
+ }
+
+ bNode *node;
+ bNodeSocket *sock;
+
+ if (node_find_indicated_socket(snode, &node, &sock, mouse, SOCK_IN | SOCK_OUT)) {
+ return OPERATOR_CANCELLED | OPERATOR_PASS_THROUGH;
+ }
}
return WM_gesture_box_invoke(C, op, event);