Fix edit-mesh selection mode switching causing two undo pushes

This commit is contained in:
Campbell Barton 2020-04-24 17:39:11 +10:00
parent b0b6fb8a93
commit e8d3996e67
Notes: blender-bot 2023-02-13 22:16:53 +01:00
Referenced by issue #77455, Scale gizmos cause complete freezes in Blender 2.83 on Intel graphics
1 changed files with 23 additions and 18 deletions

View File

@ -138,10 +138,11 @@ void uiTemplateEditModeSelection(uiLayout *layout, struct bContext *C)
if (obedit && (obedit->type == OB_MESH)) {
BMEditMesh *em = BKE_editmesh_from_object(obedit);
uiLayout *row;
uiBut *but;
row = uiLayoutRow(layout, true);
block = uiLayoutGetBlock(row);
uiDefIconButBitS(
but = uiDefIconButBitS(
block,
UI_BTYPE_TOGGLE,
SCE_SELECT_VERTEX,
@ -157,23 +158,26 @@ void uiTemplateEditModeSelection(uiLayout *layout, struct bContext *C)
0,
0,
TIP_("Vertex select - Shift-Click for multiple modes, Ctrl-Click contracts selection"));
uiDefIconButBitS(block,
UI_BTYPE_TOGGLE,
SCE_SELECT_EDGE,
B_SEL_EDGE,
ICON_EDGESEL,
0,
0,
ceilf(UI_UNIT_X - U.pixelsize),
UI_UNIT_Y,
&em->selectmode,
1.0,
0.0,
0,
0,
TIP_("Edge select - Shift-Click for multiple modes, Ctrl-Click "
"expands/contracts selection"));
uiDefIconButBitS(
UI_but_flag_disable(but, UI_BUT_UNDO);
but = uiDefIconButBitS(
block,
UI_BTYPE_TOGGLE,
SCE_SELECT_EDGE,
B_SEL_EDGE,
ICON_EDGESEL,
0,
0,
ceilf(UI_UNIT_X - U.pixelsize),
UI_UNIT_Y,
&em->selectmode,
1.0,
0.0,
0,
0,
TIP_("Edge select - Shift-Click for multiple modes, "
"Ctrl-Click expands/contracts selection depending on the current mode"));
UI_but_flag_disable(but, UI_BUT_UNDO);
but = uiDefIconButBitS(
block,
UI_BTYPE_TOGGLE,
SCE_SELECT_FACE,
@ -189,6 +193,7 @@ void uiTemplateEditModeSelection(uiLayout *layout, struct bContext *C)
0,
0,
TIP_("Face select - Shift-Click for multiple modes, Ctrl-Click expands selection"));
UI_but_flag_disable(but, UI_BUT_UNDO);
}
}