diff options
author | Campbell Barton <ideasman42@gmail.com> | 2019-09-03 16:43:15 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-09-03 16:43:15 +0300 |
commit | 545f565426562604eeaa84c6f098a4dda829ba0a (patch) | |
tree | 2ac43920ee429d67d50cdc7282ba359f4ef2213c /source/blender/draw/engines/select | |
parent | 8be800dcdf6e8c6855f27ae30d73ac1766978e14 (diff) |
Fix selection engine checks
- Don't use vertex selection in texture paint mode.
- Don't allow mixing vertex & face flags in vert/weight paint modes.
Diffstat (limited to 'source/blender/draw/engines/select')
-rw-r--r-- | source/blender/draw/engines/select/select_draw_utils.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/source/blender/draw/engines/select/select_draw_utils.c b/source/blender/draw/engines/select/select_draw_utils.c index ec47d6ea8eb..6a51c28c242 100644 --- a/source/blender/draw/engines/select/select_draw_utils.c +++ b/source/blender/draw/engines/select/select_draw_utils.c @@ -62,13 +62,19 @@ void select_id_object_min_max(Object *obj, float r_min[3], float r_max[3]) short select_id_get_object_select_mode(Scene *scene, Object *ob) { short r_select_mode = 0; - if (ob->mode & (OB_MODE_WEIGHT_PAINT | OB_MODE_VERTEX_PAINT | OB_MODE_TEXTURE_PAINT)) { + if (ob->mode & (OB_MODE_WEIGHT_PAINT | OB_MODE_VERTEX_PAINT)) { Mesh *me_orig = DEG_get_original_object(ob)->data; if (me_orig->editflag & ME_EDIT_PAINT_FACE_SEL) { r_select_mode = SCE_SELECT_FACE; } - if (me_orig->editflag & ME_EDIT_PAINT_VERT_SEL) { - r_select_mode |= SCE_SELECT_VERTEX; + else if (me_orig->editflag & ME_EDIT_PAINT_VERT_SEL) { + r_select_mode = SCE_SELECT_VERTEX; + } + } + else if (ob->mode & OB_MODE_TEXTURE_PAINT) { + Mesh *me_orig = DEG_get_original_object(ob)->data; + if (me_orig->editflag & ME_EDIT_PAINT_FACE_SEL) { + r_select_mode = SCE_SELECT_FACE; } } else { |