diff options
author | Campbell Barton <campbell@blender.org> | 2022-08-11 04:05:48 +0300 |
---|---|---|
committer | Campbell Barton <campbell@blender.org> | 2022-08-11 04:06:54 +0300 |
commit | ed55054e57a35278e90d7ecd512521289d450fd8 (patch) | |
tree | cc5b4f0dbfe7e1da31b18533d7c12d88d8fb9e21 | |
parent | 8c59b93505b3066c3fd8aac121d08395eb197307 (diff) |
Fix T100204: RMB select (with "Select Tool") causes edit-mesh conflict
When RMB select activated the selection tool, Alt-RMB would both
tweak and loop-select.
Fix/workaround this by passing though 'enumerate' unless the option
can be used (when selecting objects or armatures).
-rw-r--r-- | source/blender/editors/space_view3d/view3d_select.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c index 8eff9ee472f..571c39f30cb 100644 --- a/source/blender/editors/space_view3d/view3d_select.c +++ b/source/blender/editors/space_view3d/view3d_select.c @@ -2893,11 +2893,6 @@ static int view3d_select_exec(bContext *C, wmOperator *op) bool changed = false; int mval[2]; - RNA_int_get_array(op->ptr, "location", mval); - - view3d_operator_needs_opengl(C); - BKE_object_update_select_id(CTX_data_main(C)); - if (object_only) { obedit = NULL; obact = NULL; @@ -2908,6 +2903,19 @@ static int view3d_select_exec(bContext *C, wmOperator *op) center = false; } + if (obedit && enumerate) { + /* Enumerate makes no sense in edit-mode unless also explicitly picking objects or bones. + * Pass the event through so the event may be handled by loop-select for e.g. see: T100204. */ + if (obedit->type != OB_ARMATURE) { + return OPERATOR_PASS_THROUGH | OPERATOR_CANCELLED; + } + } + + RNA_int_get_array(op->ptr, "location", mval); + + view3d_operator_needs_opengl(C); + BKE_object_update_select_id(CTX_data_main(C)); + if (obedit && object_only == false) { if (obedit->type == OB_MESH) { changed = EDBM_select_pick(C, mval, ¶ms); |