diff options
| author | Doug Felt <dougfelt@google.com> | 2010-02-22 11:19:01 -0800 |
|---|---|---|
| committer | Doug Felt <dougfelt@google.com> | 2010-02-22 14:14:57 -0800 |
| commit | 1065758a0f8966a8597a61492112f7859a7050a4 (patch) | |
| tree | 0bfbb5c2d4eab9a59cdd3e2fc123c46c80a9647d /core/java/android/text/StaticLayout.java | |
| parent | 4bd222f1072513b21cd66d6f983ebdccb6d9b0c8 (diff) | |
Fix rounding of extra spacing when it is negative.
Diffstat (limited to 'core/java/android/text/StaticLayout.java')
| -rw-r--r-- | core/java/android/text/StaticLayout.java | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/core/java/android/text/StaticLayout.java b/core/java/android/text/StaticLayout.java index 6c89f92f1bcd..6de9c65d6886 100644 --- a/core/java/android/text/StaticLayout.java +++ b/core/java/android/text/StaticLayout.java @@ -1012,12 +1012,12 @@ extends Layout int extra; if (needMultiply) { - // XXX: this looks like it is using the +0.5 and the cast to int - // to do rounding, but this I expect this isn't doing the intended - // thing when spacingmult < 1. An intended extra of, say, -1.2 - // will get 'rounded' to -.7 and then truncated to 0. - extra = (int) ((below - above) * (spacingmult - 1) - + spacingadd + 0.5); + double ex = (below - above) * (spacingmult - 1) + spacingadd; + if (ex >= 0) { + extra = (int)(ex + 0.5); + } else { + extra = -(int)(-ex + 0.5); + } } else { extra = 0; } |
