From 25eb0c9cf481a8bb03c6db773cafdff4c1f49986 Mon Sep 17 00:00:00 2001 From: Germano Cavalcante Date: Wed, 24 Jun 2020 14:53:23 -0300 Subject: Fix T78151: Vertex/Edge Slide after enabling 'Even' doesn't cancel properly Problem introduced by rBcf42721f --- source/blender/editors/transform/transform_convert_mesh.c | 13 +------------ source/blender/editors/transform/transform_mode.h | 2 -- .../blender/editors/transform/transform_mode_edge_slide.c | 2 +- .../blender/editors/transform/transform_mode_vert_slide.c | 2 +- 4 files changed, 3 insertions(+), 16 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform_convert_mesh.c b/source/blender/editors/transform/transform_convert_mesh.c index 0f181a52810..d755693bdb6 100644 --- a/source/blender/editors/transform/transform_convert_mesh.c +++ b/source/blender/editors/transform/transform_convert_mesh.c @@ -1401,16 +1401,7 @@ void recalcData_mesh(TransInfo *t) void special_aftertrans_update__mesh(bContext *UNUSED(C), TransInfo *t) { const bool canceled = (t->state == TRANS_CANCEL); - - if (canceled) { - /* Exception, edge slide transformed UVs too. */ - if (t->mode == TFM_EDGE_SLIDE) { - doEdgeSlide(t, 0.0f); - } - else if (t->mode == TFM_VERT_SLIDE) { - doVertSlide(t, 0.0f); - } - } + const bool use_automerge = !canceled && (t->flag & (T_AUTOMERGE | T_AUTOSPLIT)) != 0; if (ELEM(t->mode, TFM_EDGE_SLIDE, TFM_VERT_SLIDE)) { /* Handle multires re-projection, done @@ -1421,10 +1412,8 @@ void special_aftertrans_update__mesh(bContext *UNUSED(C), TransInfo *t) } } - bool use_automerge = !canceled && (t->flag & (T_AUTOMERGE | T_AUTOSPLIT)) != 0; if (use_automerge) { FOREACH_TRANS_DATA_CONTAINER (t, tc) { - BMEditMesh *em = BKE_editmesh_from_object(tc->obedit); BMesh *bm = em->bm; char hflag; diff --git a/source/blender/editors/transform/transform_mode.h b/source/blender/editors/transform/transform_mode.h index 0d663377da3..5cda8e3063a 100644 --- a/source/blender/editors/transform/transform_mode.h +++ b/source/blender/editors/transform/transform_mode.h @@ -97,7 +97,6 @@ void initSeqSlide(TransInfo *t); /* transform_mode_edge_slide.c */ void drawEdgeSlide(TransInfo *t); -void doEdgeSlide(TransInfo *t, float perc); void initEdgeSlide_ex( TransInfo *t, bool use_double_side, bool use_even, bool flipped, bool use_clamp); void initEdgeSlide(TransInfo *t); @@ -155,7 +154,6 @@ void initTranslation(TransInfo *t); /* transform_mode_vert_slide.c */ void drawVertSlide(TransInfo *t); -void doVertSlide(TransInfo *t, float perc); void initVertSlide_ex(TransInfo *t, bool use_even, bool flipped, bool use_clamp); void initVertSlide(TransInfo *t); #endif diff --git a/source/blender/editors/transform/transform_mode_edge_slide.c b/source/blender/editors/transform/transform_mode_edge_slide.c index 9a82296bfc0..737b3001d62 100644 --- a/source/blender/editors/transform/transform_mode_edge_slide.c +++ b/source/blender/editors/transform/transform_mode_edge_slide.c @@ -1323,7 +1323,7 @@ static void edge_slide_snap_apply(TransInfo *t, float *value) *value = perc; } -void doEdgeSlide(TransInfo *t, float perc) +static void doEdgeSlide(TransInfo *t, float perc) { EdgeSlideParams *slp = t->custom.mode.data; EdgeSlideData *sld_active = edgeSlideFirstGet(t); diff --git a/source/blender/editors/transform/transform_mode_vert_slide.c b/source/blender/editors/transform/transform_mode_vert_slide.c index 157358016e6..a6b37bf1df8 100644 --- a/source/blender/editors/transform/transform_mode_vert_slide.c +++ b/source/blender/editors/transform/transform_mode_vert_slide.c @@ -492,7 +492,7 @@ void drawVertSlide(TransInfo *t) } } -void doVertSlide(TransInfo *t, float perc) +static void doVertSlide(TransInfo *t, float perc) { VertSlideParams *slp = t->custom.mode.data; -- cgit v1.2.3