From 08b4ac868ab34fbe15f6774fe2f2d9b1e6545131 Mon Sep 17 00:00:00 2001 From: Diego Hernan Borghetti Date: Thu, 27 Mar 2008 12:38:41 -0300 Subject: [PATCH] Fix for bug #8713: edge loop delete did an undo push too much. Author: Brecht Van Lommel SVN revision: 14249 Date: 2008-03-26 13:46:04 -0300 (Wed, 26 Mar 2008) --- source/blender/include/BIF_editmesh.h | 2 ++ source/blender/src/editmesh_mods.c | 14 ++++++++++++-- source/blender/src/editmesh_tools.c | 9 +++++---- source/blender/src/header_view3d.c | 6 +++++- 4 files changed, 24 insertions(+), 7 deletions(-) diff --git a/source/blender/include/BIF_editmesh.h b/source/blender/include/BIF_editmesh.h index 78a53db..a60a71f 100644 --- a/source/blender/include/BIF_editmesh.h +++ b/source/blender/include/BIF_editmesh.h @@ -174,6 +174,8 @@ extern void select_mesh_group_menu(void); extern void editmesh_mark_seam(int clear); extern void loop_multiselect(int looptype); +extern void EM_select_more(void); +extern void EM_select_less(void); /* ******************* editmesh_loop.c */ diff --git a/source/blender/src/editmesh_mods.c b/source/blender/src/editmesh_mods.c index 3dc1fc5..99b27cd 100644 --- a/source/blender/src/editmesh_mods.c +++ b/source/blender/src/editmesh_mods.c @@ -2398,7 +2398,7 @@ void deselectall_mesh(void) /* this toggles!!!, UI level */ } } -void select_more(void) +void EM_select_more(void) { EditMesh *em = G.editMesh; EditVert *eve; @@ -2436,13 +2436,18 @@ void select_more(void) EM_select_face(efa, 1); } } +} + +void select_more(void) +{ + EM_select_more(); countall(); addqueue(curarea->win, REDRAW, 0); BIF_undo_push("Select More"); } -void select_less(void) +void EM_select_less(void) { EditMesh *em = G.editMesh; EditEdge *eed; @@ -2502,6 +2507,11 @@ void select_less(void) EM_selectmode_flush(); } +} + +void select_less(void) +{ + EM_select_less(); countall(); BIF_undo_push("Select Less"); diff --git a/source/blender/src/editmesh_tools.c b/source/blender/src/editmesh_tools.c index 204becf..d525232 100644 --- a/source/blender/src/editmesh_tools.c +++ b/source/blender/src/editmesh_tools.c @@ -950,9 +950,10 @@ void delete_mesh(void) erase_vertices(&em->verts); } else if(event==6) { - if(!EdgeLoopDelete()) { - BIF_undo(); - } + if(!EdgeLoopDelete()) + return; + + str= "Erase Edge Loop"; } else if(event==4) { str= "Erase Edges & Faces"; @@ -4532,7 +4533,7 @@ int EdgeLoopDelete(void) { if(!EdgeSlide(1, 1)) { return 0; } - select_more(); + EM_select_more(); removedoublesflag(1,0.001); EM_select_flush(); DAG_object_flush_update(G.scene, G.obedit, OB_RECALC_DATA); diff --git a/source/blender/src/header_view3d.c b/source/blender/src/header_view3d.c index 1e41fcf..5456780 100644 --- a/source/blender/src/header_view3d.c +++ b/source/blender/src/header_view3d.c @@ -2667,7 +2667,11 @@ void do_view3d_edit_mesh_edgesmenu(void *arg, int event) EdgeSlide(0,0.0); break; case 13: /* Edge Loop Delete */ - EdgeLoopDelete(); + if(EdgeLoopDelete()) { + countall(); + BIF_undo_push("Erase Edge Loop"); + DAG_object_flush_update(G.scene, G.obedit, OB_RECALC_DATA); + } break; case 14: /*Collapse Edges*/ collapseEdges(); -- 2.11.4.GIT