[Bf-blender-cvs] [6cc83f9079d] master: Fix T96728: 'Automatic Constraint' using the wrong orientation

Germano Cavalcante noreply at git.blender.org
Wed Mar 23 16:21:02 CET 2022


Commit: 6cc83f9079de11ddb53af5bab3e0442a234aadb2
Author: Germano Cavalcante
Date:   Wed Mar 23 12:19:30 2022 -0300
Branches: master
https://developer.blender.org/rB6cc83f9079de11ddb53af5bab3e0442a234aadb2

Fix T96728: 'Automatic Constraint' using the wrong orientation

If the `Automatic Constraint` modifier was activated while an axis
constraint was already set, the orientation used would be the default
orientation of the mode and not that of the scene.

This was because the `initSelectConstraint` function was not called in
this case and the `Automatic Constraint` mode was enabled by other
indirect means

So the solution is to call `initSelectConstraint` in either case and
remove these "indirect means" of enabling `Automatic Constraint`.

===================================================================

M	source/blender/editors/transform/transform.c
M	source/blender/editors/transform/transform_constraints.c

===================================================================

diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c
index 975f4370425..df36acf5c1f 100644
--- a/source/blender/editors/transform/transform.c
+++ b/source/blender/editors/transform/transform.c
@@ -845,10 +845,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 */
@@ -1116,10 +1112,8 @@ int transformEvent(TransInfo *t, const wmEvent *event)
               if (t->con.mode & CON_APPLY) {
                 stopConstraint(t);
               }
-              else {
-                initSelectConstraint(t);
-                postSelectConstraint(t);
-              }
+
+              initSelectConstraint(t);
             }
           }
           t->redraw |= TREDRAW_HARD;
diff --git a/source/blender/editors/transform/transform_constraints.c b/source/blender/editors/transform/transform_constraints.c
index 81b35e4539b..0ccabf5798f 100644
--- a/source/blender/editors/transform/transform_constraints.c
+++ b/source/blender/editors/transform/transform_constraints.c
@@ -984,6 +984,7 @@ void initSelectConstraint(TransInfo *t)
   }
 
   setUserConstraint(t, CON_APPLY | CON_SELECT, "%s");
+  selectConstraint(t);
 }
 
 void selectConstraint(TransInfo *t)
@@ -996,19 +997,7 @@ 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;
 }
 
 static void setNearestAxis2d(TransInfo *t)



More information about the Bf-blender-cvs mailing list