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:
authorBastien Montagne <montagne29@wanadoo.fr>2017-12-05 13:48:37 +0300
committerBastien Montagne <montagne29@wanadoo.fr>2017-12-05 13:48:37 +0300
commitdeaeee8e4d92cfd43e641db6a86273e70a4dae7d (patch)
treeec6566f1bec87a97008d9800b350449d290b1099 /source/blender/editors/util
parent7d50f1686975c699ccadfab0574dc25c3f0edf80 (diff)
parent1802d14394c52698c0501e03179a651cf3a65cfd (diff)
Merge branch 'master' into blender2.8
Diffstat (limited to 'source/blender/editors/util')
-rw-r--r--source/blender/editors/util/numinput.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/source/blender/editors/util/numinput.c b/source/blender/editors/util/numinput.c
index 61142fdc887..0f3240946fd 100644
--- a/source/blender/editors/util/numinput.c
+++ b/source/blender/editors/util/numinput.c
@@ -488,8 +488,9 @@ bool handleNumInput(bContext *C, NumInput *n, const wmEvent *event)
const float fac = (float)BKE_scene_unit_scale(&sce->unit, n->unit_type[idx], 1.0);
/* Make radian default unit when needed. */
- if (n->unit_use_radians && n->unit_type[idx] == B_UNIT_ROTATION)
+ if (n->unit_use_radians && n->unit_type[idx] == B_UNIT_ROTATION) {
default_unit = "r";
+ }
BLI_strncpy(str_unit_convert, n->str, sizeof(str_unit_convert));
@@ -513,7 +514,16 @@ bool handleNumInput(bContext *C, NumInput *n, const wmEvent *event)
n->val[idx] = -n->val[idx];
}
if (n->val_flag[idx] & NUM_INVERSE) {
- n->val[idx] = 1.0f / n->val[idx];
+ val = n->val[idx];
+ /* If we invert on radians when user is in degrees, you get unexpected results... See T53463. */
+ if (!n->unit_use_radians && n->unit_type[idx] == B_UNIT_ROTATION) {
+ val = RAD2DEG(val);
+ }
+ val = 1.0 / val;
+ if (!n->unit_use_radians && n->unit_type[idx] == B_UNIT_ROTATION) {
+ val = DEG2RAD(val);
+ }
+ n->val[idx] = (float)val;
}
if (UNLIKELY(!isfinite(n->val[idx]))) {