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:
authorCampbell Barton <ideasman42@gmail.com>2017-11-19 18:28:07 +0300
committerCampbell Barton <ideasman42@gmail.com>2017-11-19 18:28:07 +0300
commit0a69e3b307f05aeab8bd84f69560b4118c9bfaf2 (patch)
tree2dfeaae34f13c78bfd1594a78637ce31a95aba33 /source/blender/editors/mesh
parent92ea28101725631f8ebe6c6cfd37007175f1af03 (diff)
Option not to select with un-hide
D1518 from @mba105 w/ edits
Diffstat (limited to 'source/blender/editors/mesh')
-rw-r--r--source/blender/editors/mesh/editface.c6
-rw-r--r--source/blender/editors/mesh/editmesh_tools.c9
-rw-r--r--source/blender/editors/mesh/editmesh_utils.c4
3 files changed, 11 insertions, 8 deletions
diff --git a/source/blender/editors/mesh/editface.c b/source/blender/editors/mesh/editface.c
index 4336fff45d5..87c8c55b0a1 100644
--- a/source/blender/editors/mesh/editface.c
+++ b/source/blender/editors/mesh/editface.c
@@ -138,7 +138,7 @@ void paintface_hide(Object *ob, const bool unselected)
}
-void paintface_reveal(Object *ob)
+void paintface_reveal(Object *ob, const bool select)
{
Mesh *me;
MPoly *mpoly;
@@ -151,8 +151,8 @@ void paintface_reveal(Object *ob)
a = me->totpoly;
while (a--) {
if (mpoly->flag & ME_HIDE) {
- mpoly->flag |= ME_FACE_SEL;
- mpoly->flag -= ME_HIDE;
+ SET_FLAG_FROM_TEST(mpoly->flag, select, ME_FACE_SEL);
+ mpoly->flag &= ~ME_HIDE;
}
mpoly++;
}
diff --git a/source/blender/editors/mesh/editmesh_tools.c b/source/blender/editors/mesh/editmesh_tools.c
index bf25f7ee7d1..bc251869e3d 100644
--- a/source/blender/editors/mesh/editmesh_tools.c
+++ b/source/blender/editors/mesh/editmesh_tools.c
@@ -1652,12 +1652,13 @@ void MESH_OT_hide(wmOperatorType *ot)
RNA_def_boolean(ot->srna, "unselected", false, "Unselected", "Hide unselected rather than selected");
}
-static int edbm_reveal_exec(bContext *C, wmOperator *UNUSED(op))
+static int edbm_reveal_exec(bContext *C, wmOperator *op)
{
Object *obedit = CTX_data_edit_object(C);
BMEditMesh *em = BKE_editmesh_from_object(obedit);
-
- EDBM_mesh_reveal(em);
+ const bool select = RNA_boolean_get(op->ptr, "select");
+
+ EDBM_mesh_reveal(em, select);
EDBM_update_generic(em, true, false);
@@ -1677,6 +1678,8 @@ void MESH_OT_reveal(wmOperatorType *ot)
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ RNA_def_boolean(ot->srna, "select", true, "Select", "");
}
static int edbm_normals_make_consistent_exec(bContext *C, wmOperator *op)
diff --git a/source/blender/editors/mesh/editmesh_utils.c b/source/blender/editors/mesh/editmesh_utils.c
index c8151862b6c..fc568a8b8ee 100644
--- a/source/blender/editors/mesh/editmesh_utils.c
+++ b/source/blender/editors/mesh/editmesh_utils.c
@@ -1225,7 +1225,7 @@ void EDBM_mesh_hide(BMEditMesh *em, bool swap)
}
-void EDBM_mesh_reveal(BMEditMesh *em)
+void EDBM_mesh_reveal(BMEditMesh *em, bool select)
{
const char iter_types[3] = {BM_VERTS_OF_MESH,
BM_EDGES_OF_MESH,
@@ -1264,7 +1264,7 @@ void EDBM_mesh_reveal(BMEditMesh *em)
BM_ITER_MESH (ele, &iter, em->bm, iter_types[i]) {
if (BM_elem_flag_test(ele, BM_ELEM_TAG)) {
- BM_elem_select_set(em->bm, ele, true);
+ BM_elem_select_set(em->bm, ele, select);
}
}
}