Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/blender/editors/transform/transform.c10
-rw-r--r--source/blender/editors/transform/transform.h1
-rw-r--r--source/blender/editors/transform/transform_conversions.c16
3 files changed, 17 insertions, 10 deletions
diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c
index f8782f47ad2..2b2ad563f0a 100644
--- a/source/blender/editors/transform/transform.c
+++ b/source/blender/editors/transform/transform.c
@@ -4783,16 +4783,6 @@ void freeSlideVerts(TransInfo *t)
if (!sld)
return;
- /*handle multires reprojection, done
- on transform completion since it's
- really slow -joeedh*/
- if (t->state != TRANS_CANCEL) {
- projectSVData(t, 1);
- } else {
- sld->perc = 0.0;
- projectSVData(t, 0);
- }
-
freeSlideTempFaces(sld);
sld->em->bm->ob = t->obedit;
diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h
index 545d2348f82..07c90f95840 100644
--- a/source/blender/editors/transform/transform.h
+++ b/source/blender/editors/transform/transform.h
@@ -691,5 +691,6 @@ int getTransformOrientation(const struct bContext *C, float normal[3], float pla
void freeSlideTempFaces(SlideData *sld);
void freeSlideVerts(TransInfo *t);
+void projectSVData(TransInfo *t, int final);
#endif
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c
index 39a89940e17..4de220af959 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -4877,10 +4877,26 @@ void special_aftertrans_update(bContext *C, TransInfo *t)
/* we need to delete the temporary faces before automerging */
if(t->mode == TFM_EDGE_SLIDE){
SlideData *sld = t->customData;
+
+ /* handle multires reprojection, done
+ * on transform completion since it's
+ * really slow -joeedh */
+ projectSVData(t, TRUE);
+
+ /* free temporary faces to avoid automerging and deleting
+ * during cleanup - psy-fi */
freeSlideTempFaces(sld);
}
EDBM_automerge(t->scene, t->obedit, 1);
}
+ else {
+ if (t->mode == TFM_EDGE_SLIDE) {
+ SlideData *sld = t->customData;
+
+ sld->perc = 0.0;
+ projectSVData(t, FALSE);
+ }
+ }
}
}