diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-11-30 20:27:04 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-11-30 20:27:36 +0300 |
commit | 8d4da34883b25195da28024dc51b2c9b3347d504 (patch) | |
tree | df2f5cd9122ee604b7f77e4a336c9736d9d2cc87 /source/blender/editors/space_node/node_select.c | |
parent | ed5202ac6ad539d1c1734e8ea456245f42dc9bbf (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.c | 19 |
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); |