diff options
author | mano-wii <germano.costa@ig.com.br> | 2019-10-08 22:45:24 +0300 |
---|---|---|
committer | mano-wii <germano.costa@ig.com.br> | 2019-10-08 22:45:32 +0300 |
commit | 234f346c2f938ebb11f0f1e9b2c2a040f3ea5572 (patch) | |
tree | e3a2a63965836666b0646283a6d9c4ae9eb9d274 /source/blender/editors/space_view3d/view3d_select.c | |
parent | 576c782b11f629130b1226f37d4fd467f8793247 (diff) |
Fix T70601: Lasso select not functioning correctly in Armature Edit Mode
This solution mimics the one used for pose by ignoring the bone line if either end is clipped.
Diffstat (limited to 'source/blender/editors/space_view3d/view3d_select.c')
-rw-r--r-- | source/blender/editors/space_view3d/view3d_select.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c index 198b5d05540..3eee76277e8 100644 --- a/source/blender/editors/space_view3d/view3d_select.c +++ b/source/blender/editors/space_view3d/view3d_select.c @@ -1020,10 +1020,12 @@ static void do_lasso_select_armature__doSelectBone(void *userData, is_ignore_flag |= BONESEL_TIP; } - if (is_inside_flag == (BONE_ROOTSEL | BONE_TIPSEL) || - BLI_lasso_is_edge_inside( - data->mcords, data->moves, UNPACK2(screen_co_a), UNPACK2(screen_co_b), INT_MAX)) { - is_inside_flag |= BONESEL_BONE; + if (is_ignore_flag == 0) { + if (is_inside_flag == (BONE_ROOTSEL | BONE_TIPSEL) || + BLI_lasso_is_edge_inside( + data->mcords, data->moves, UNPACK2(screen_co_a), UNPACK2(screen_co_b), INT_MAX)) { + is_inside_flag |= BONESEL_BONE; + } } ebone->temp.i = is_inside_flag | (is_ignore_flag >> 16); |