diff options
Diffstat (limited to 'source/blender/editors/mesh/editface.c')
-rw-r--r-- | source/blender/editors/mesh/editface.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/source/blender/editors/mesh/editface.c b/source/blender/editors/mesh/editface.c index 9832f7ba9cf..a5c6adaa43e 100644 --- a/source/blender/editors/mesh/editface.c +++ b/source/blender/editors/mesh/editface.c @@ -389,8 +389,14 @@ bool paintface_mouse_select(struct bContext *C, } } - if ((params->sel_op == SEL_OP_SET) && (found || params->deselect_all)) { - changed |= paintface_deselect_all_visible(C, ob, SEL_DESELECT, false); + if (params->sel_op == SEL_OP_SET) { + if ((found && params->select_passthrough) && (mpoly_sel->flag & ME_FACE_SEL)) { + found = false; + } + else if (found || params->deselect_all) { + /* Deselect everything. */ + changed |= paintface_deselect_all_visible(C, ob, SEL_DESELECT, false); + } } if (found) { |