fix for select ungrouped vertices not flushing, also group select menu items more logically.

This commit is contained in:
Campbell Barton 2013-05-01 05:59:58 +00:00
parent 30c7183874
commit 2cda8a9efb
2 changed files with 20 additions and 8 deletions

@ -582,26 +582,36 @@ class VIEW3D_MT_select_edit_mesh(Menu):
layout.separator()
# primitive
layout.operator("mesh.select_all").action = 'TOGGLE'
layout.operator("mesh.select_all", text="Inverse").action = 'INVERT'
layout.separator()
layout.operator("mesh.select_ungrouped", text="Ungrouped Verts")
# numeric
layout.operator("mesh.select_random", text="Random")
layout.operator("mesh.select_nth")
layout.operator("mesh.edges_select_sharp", text="Sharp Edges")
layout.operator("mesh.faces_select_linked_flat", text="Linked Flat Faces")
layout.operator("mesh.select_interior_faces", text="Interior Faces")
layout.operator("mesh.select_axis", text="Side of Active")
layout.separator()
layout.operator("mesh.select_face_by_sides")
# geometric
layout.operator("mesh.edges_select_sharp", text="Sharp Edges")
layout.operator("mesh.faces_select_linked_flat", text="Linked Flat Faces")
layout.separator()
# topology
layout.operator("mesh.select_loose", text="Loose Geometry")
if context.scene.tool_settings.mesh_select_mode[2] is False:
layout.operator("mesh.select_non_manifold", text="Non Manifold")
layout.operator("mesh.select_loose", text="Loose Geometry")
layout.operator("mesh.select_interior_faces", text="Interior Faces")
layout.operator("mesh.select_face_by_sides")
layout.separator()
# other ...
layout.operator_menu_enum("mesh.select_similar", "type", text="Similar")
layout.operator("mesh.select_ungrouped", text="Ungrouped Verts")
layout.separator()
@ -611,6 +621,7 @@ class VIEW3D_MT_select_edit_mesh(Menu):
layout.separator()
layout.operator("mesh.select_mirror", text="Mirror")
layout.operator("mesh.select_axis", text="Side of Active")
layout.operator("mesh.select_linked", text="Linked")
layout.operator("mesh.select_vertex_path", text="Vertex Path")

@ -3331,12 +3331,13 @@ static int edbm_select_ungrouped_exec(bContext *C, wmOperator *op)
if (!BM_elem_flag_test(eve, BM_ELEM_HIDDEN)) {
MDeformVert *dv = CustomData_bmesh_get(&em->bm->vdata, eve->head.data, CD_MDEFORMVERT);
/* no dv or dv set with no weight */
if (dv == NULL || (dv && dv->dw == NULL)) {
if (ELEM(NULL, dv, dv->dw)) {
BM_vert_select_set(em->bm, eve, true);
}
}
}
EDBM_selectmode_flush(em);
WM_event_add_notifier(C, NC_GEOM | ND_SELECT, obedit->data);
return OPERATOR_FINISHED;