From 231ea39ed154b8284f45e97b10fbb699e79358c3 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 19 Dec 2018 20:44:14 +1100 Subject: Transform: use the scenes transform orientation - 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 | 6 +++--- source/blender/editors/transform/transform_generics.c | 7 ++++--- 2 files changed, 7 insertions(+), 6 deletions(-) (limited to 'source/blender/editors/transform') diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index 2aff12266a7..0f555bcc5b7 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -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); } } diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c index 704d818a1c6..c1a2eb218cf 100644 --- a/source/blender/editors/transform/transform_generics.c +++ b/source/blender/editors/transform/transform_generics.c @@ -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 */ -- cgit v1.2.3