Fix T78151: Vertex/Edge Slide after enabling 'Even' doesn't cancel properly
Problem introduced by rBcf42721f
This commit is contained in:
parent
ede6e739dd
commit
25eb0c9cf4
Notes:
blender-bot
2023-02-14 04:20:36 +01:00
Referenced by issue #78151, "Vertex Slide / Edge Slide" after enabling 'Even' doesn't cancel properly
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
Loading…
Reference in New Issue