diff options
| author | 2021-12-13 18:03:00 +0000 | |
|---|---|---|
| committer | 2021-12-13 18:03:00 +0000 | |
| commit | 508f81fc7a725532a93d5de19b5a9f9515bf4f29 (patch) | |
| tree | 916e726c24aebbfa3ec432df98d79f147ec30f0b | |
| parent | 90413535d6192e01ab9a8ae450c54ba53e39da9a (diff) | |
| parent | d2980207d2e2091f2d219eb8f6f17f11409b0d44 (diff) | |
Merge "Fix top/bottom to adjust fallback ascent/descent."
| -rw-r--r-- | core/java/android/text/StaticLayout.java | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/core/java/android/text/StaticLayout.java b/core/java/android/text/StaticLayout.java index 6984e4dfccc4..4789231b0404 100644 --- a/core/java/android/text/StaticLayout.java +++ b/core/java/android/text/StaticLayout.java @@ -874,6 +874,18 @@ public class StaticLayout extends Layout { ? Math.max(fmDescent, Math.round(descents[breakIndex])) : fmDescent; + // The fallback ascent/descent may be larger than top/bottom of the default font + // metrics. Adjust top/bottom with ascent/descent for avoiding unexpected + // clipping. + if (fallbackLineSpacing) { + if (ascent < fmTop) { + fmTop = ascent; + } + if (descent > fmBottom) { + fmBottom = descent; + } + } + v = out(source, here, endPos, ascent, descent, fmTop, fmBottom, v, spacingmult, spacingadd, chooseHt, chooseHtv, fm, |