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:
authorPhilipp Oeser <info@graphics-engineer.com>2020-10-01 19:11:51 +0300
committerPhilipp Oeser <info@graphics-engineer.com>2020-10-02 18:05:03 +0300
commite3b49bb850018ae73088b8d4e7c195206f8b2f31 (patch)
treec82d7c13476cefd52df96c0a51688cb98aa521d6 /source/blender/editors/armature
parent81573058698dfc4a9a171dffa61c1c8d5d42377b (diff)
Fix T81200: Crash on certain armature select operators when OpenGL Depth
Picking is disabled Affected were (at least) - Select Linked pick - Select Shortest Path Was originally caused by rB8b347fc2cdc6 [which got improved in rBfc8a7a44b200 - but only partially]. After removal of BONESEL_NOSEL we have to filter out -1 from the hits for any bone picking it seems (since armature drawing uses this). In rBfc8a7a44b200, this was done for 'ED_armature_edit_select_pick' (or 'get_nearest_editbonepoint' precisely), now do this for 'ed_armature_pick_bone_impl' as well. Reviewers: campbellbarton Maniphest Tasks: T81200 Differential Revision: https://developer.blender.org/D9080
Diffstat (limited to 'source/blender/editors/armature')
-rw-r--r--source/blender/editors/armature/armature_select.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/source/blender/editors/armature/armature_select.c b/source/blender/editors/armature/armature_select.c
index 4c5efb304c9..09d54410e55 100644
--- a/source/blender/editors/armature/armature_select.c
+++ b/source/blender/editors/armature/armature_select.c
@@ -335,8 +335,16 @@ static void *ed_armature_pick_bone_impl(
BLI_rcti_init_pt_radius(&rect, xy, 0);
- hits = view3d_opengl_select(
- &vc, buffer, MAXPICKBUF, &rect, VIEW3D_SELECT_PICK_NEAREST, VIEW3D_SELECT_FILTER_NOP);
+ /* Don't use hits with this ID, (armature drawing uses this). */
+ const int select_id_ignore = -1;
+
+ hits = view3d_opengl_select_with_id_filter(&vc,
+ buffer,
+ MAXPICKBUF,
+ &rect,
+ VIEW3D_SELECT_PICK_NEAREST,
+ VIEW3D_SELECT_FILTER_NOP,
+ select_id_ignore);
*r_base = NULL;