From e8d3996e6776029ce27e29d7e717b0f301a0fa55 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 24 Apr 2020 17:39:11 +1000 Subject: Fix edit-mesh selection mode switching causing two undo pushes --- .../blender/editors/space_view3d/view3d_header.c | 41 ++++++++++++---------- 1 file changed, 23 insertions(+), 18 deletions(-) (limited to 'source/blender/editors/space_view3d') diff --git a/source/blender/editors/space_view3d/view3d_header.c b/source/blender/editors/space_view3d/view3d_header.c index be0084d8869..119ba059a70 100644 --- a/source/blender/editors/space_view3d/view3d_header.c +++ b/source/blender/editors/space_view3d/view3d_header.c @@ -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); } } -- cgit v1.2.3