diff options
Diffstat (limited to 'source/blender/editors/transform/transform_generics.c')
-rw-r--r-- | source/blender/editors/transform/transform_generics.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c index 5b41f6b51bf..1f23be0cad6 100644 --- a/source/blender/editors/transform/transform_generics.c +++ b/source/blender/editors/transform/transform_generics.c @@ -1285,18 +1285,24 @@ void calculatePropRatio(TransInfo *t) if (td->flag & TD_SELECTED) { td->factor = 1.0f; } - else if ((connected && (td->flag & TD_NOTCONNECTED || td->dist > t->prop_size)) || - (connected == 0 && td->rdist > t->prop_size)) { + else if (((t->flag & T_PROP_FIXED_DISTANCE) == 0) && + ((connected && (td->flag & TD_NOTCONNECTED || td->dist > t->prop_size)) || + (connected == 0 && td->rdist > t->prop_size))) { td->factor = 0.0f; restoreElement(td); } else { /* Use rdist for falloff calculations, it is the real distance */ - if (connected) { - dist = (t->prop_size - td->dist) / t->prop_size; + if ((t->flag & T_PROP_FIXED_DISTANCE) == 0) { + if (connected) { + dist = (t->prop_size - td->dist) / t->prop_size; + } + else { + dist = (t->prop_size - td->rdist) / t->prop_size; + } } else { - dist = (t->prop_size - td->rdist) / t->prop_size; + dist = 1.0f - td->dist; } /* |