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.c16
-rw-r--r--source/blender/editors/transform/transform_constraints.c15
2 files changed, 10 insertions, 21 deletions
diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c
index ec15b748c40..76d42fae444 100644
--- a/source/blender/editors/transform/transform.c
+++ b/source/blender/editors/transform/transform.c
@@ -843,10 +843,6 @@ int transformEvent(TransInfo *t, const wmEvent *event)
handled = true;
}
else if (event->type == MOUSEMOVE) {
- if (t->modifiers & (MOD_CONSTRAINT_SELECT_AXIS | MOD_CONSTRAINT_SELECT_PLANE)) {
- t->con.mode |= CON_SELECT;
- }
-
copy_v2_v2_int(t->mval, event->mval);
/* Use this for soft redraw. Might cause flicker in object mode */
@@ -1095,6 +1091,7 @@ int transformEvent(TransInfo *t, const wmEvent *event)
/* Confirm. */
postSelectConstraint(t);
t->modifiers &= ~(MOD_CONSTRAINT_SELECT_AXIS | MOD_CONSTRAINT_SELECT_PLANE);
+ t->redraw = TREDRAW_HARD;
}
else {
if (t->options & CTX_CAMERA) {
@@ -1106,6 +1103,7 @@ int transformEvent(TransInfo *t, const wmEvent *event)
restoreTransObjects(t);
transform_mode_init(t, NULL, TFM_TRACKBALL);
}
+ t->redraw = TREDRAW_HARD;
}
else {
t->modifiers |= (event->val == TFM_MODAL_AUTOCONSTRAINT) ?
@@ -1114,13 +1112,13 @@ int transformEvent(TransInfo *t, const wmEvent *event)
if (t->con.mode & CON_APPLY) {
stopConstraint(t);
}
- else {
- initSelectConstraint(t);
- postSelectConstraint(t);
- }
+
+ initSelectConstraint(t);
+ /* Use #TREDRAW_SOFT so that #selectConstraint is only called on the next event.
+ * This allows us to "deselect" the contraint. */
+ t->redraw = TREDRAW_SOFT;
}
}
- t->redraw |= TREDRAW_HARD;
handled = true;
}
break;
diff --git a/source/blender/editors/transform/transform_constraints.c b/source/blender/editors/transform/transform_constraints.c
index 81b35e4539b..0bb00032561 100644
--- a/source/blender/editors/transform/transform_constraints.c
+++ b/source/blender/editors/transform/transform_constraints.c
@@ -996,19 +996,10 @@ void selectConstraint(TransInfo *t)
void postSelectConstraint(TransInfo *t)
{
- if (!(t->con.mode & CON_SELECT)) {
- return;
- }
-
- t->con.mode &= ~CON_AXIS0;
- t->con.mode &= ~CON_AXIS1;
- t->con.mode &= ~CON_AXIS2;
t->con.mode &= ~CON_SELECT;
-
- setNearestAxis(t);
-
- startConstraint(t);
- t->redraw = TREDRAW_HARD;
+ if (!(t->con.mode & (CON_AXIS0 | CON_AXIS1 | CON_AXIS2))) {
+ t->con.mode &= ~CON_APPLY;
+ }
}
static void setNearestAxis2d(TransInfo *t)