Fix T38877: F-Curve modal input is incorrect when set to Imperial units.
authorBastien Montagne <montagne29@wanadoo.fr>
Fri, 28 Feb 2014 08:51:05 +0000 (09:51 +0100)
committerBastien Montagne <montagne29@wanadoo.fr>
Fri, 28 Feb 2014 08:52:21 +0000 (09:52 +0100)
Using length units outside of 3dview does not make sense...

source/blender/editors/transform/transform.c

index 7cab4614606d028cc0f37ae6909b1951291bca3a..d52b494131b995e0432538375f859c13a15e3ac5 100644 (file)
@@ -4075,10 +4075,18 @@ static void initTranslation(TransInfo *t)
 
        copy_v3_fl(t->num.val_inc, t->snap[1]);
        t->num.unit_sys = t->scene->unit.system;
-       t->num.unit_type[0] = B_UNIT_LENGTH;
-       t->num.unit_type[1] = B_UNIT_LENGTH;
-       t->num.unit_type[2] = B_UNIT_LENGTH;
-
+       if (t->spacetype == SPACE_VIEW3D) {
+               /* Handling units makes only sense in 3Dview... See T38877. */
+               t->num.unit_type[0] = B_UNIT_LENGTH;
+               t->num.unit_type[1] = B_UNIT_LENGTH;
+               t->num.unit_type[2] = B_UNIT_LENGTH;
+       }
+       else {
+               /* SPACE_IPO, SPACE_ACTION, etc. could use some time units, when we have them... */
+               t->num.unit_type[0] = B_UNIT_NONE;
+               t->num.unit_type[1] = B_UNIT_NONE;
+               t->num.unit_type[2] = B_UNIT_NONE;
+       }
 }
 
 static void headerTranslation(TransInfo *t, float vec[3], char str[MAX_INFO_LEN])