Transform: use the scenes transform orientation
authorCampbell Barton <ideasman42@gmail.com>
Wed, 19 Dec 2018 09:44:14 +0000 (20:44 +1100)
committerCampbell Barton <ideasman42@gmail.com>
Wed, 19 Dec 2018 09:49:13 +0000 (20:49 +1100)
- Use the user orientation when pressing XYZ keys,
  second press switches to global.
- Pressing again switches to global, or local
  if you're have global orientation set.

The option for gizmos to have their own orientations will be added,
see: D4075

source/blender/editors/transform/transform.c
source/blender/editors/transform/transform_generics.c

index 2aff12266a75221d3d895a0616913ddfc21ce1c5..0f555bcc5b7c374298395d2e1420ce9f00456825 100644 (file)
@@ -1381,15 +1381,15 @@ int transformEvent(TransInfo *t, const wmEvent *event)
                                                }
                                                else {
                                                        if (event->shift) {
-                                                               initSelectConstraint(t, t->spacemtx);
-                                                       }
-                                                       else {
                                                                /* bit hackish... but it prevents mmb select to print the orientation from menu */
                                                                float mati[3][3];
                                                                strcpy(t->spacename, "global");
                                                                unit_m3(mati);
                                                                initSelectConstraint(t, mati);
                                                        }
+                                                       else {
+                                                               initSelectConstraint(t, t->spacemtx);
+                                                       }
                                                        postSelectConstraint(t);
                                                }
                                        }
index 704d818a1c624cb65cb3f89f1c62ec6bda54090c..c1a2eb218cf4cbc8500c8ff7a3d988c5aa1d58b4 100644 (file)
@@ -1408,13 +1408,14 @@ void initTransInfo(bContext *C, TransInfo *t, wmOperator *op, const wmEvent *eve
                t->orientation.index = 0;
                ARRAY_SET_ITEMS(
                        t->orientation.types,
-                       NULL,
-                       &t->orientation.user);
+                       &t->orientation.user,
+                       NULL);
 
                /* Make second orientation local if both are global. */
                if (t->orientation.user == V3D_MANIP_GLOBAL) {
                        t->orientation.user_alt = V3D_MANIP_LOCAL;
-                       t->orientation.types[1] = &t->orientation.user_alt;
+                       t->orientation.types[0] = &t->orientation.user_alt;
+                       SWAP(short *, t->orientation.types[0], t->orientation.types[1]);
                }
 
                /* exceptional case */