diff options
| author | 2010-12-02 16:47:50 -0800 | |
|---|---|---|
| committer | 2010-12-02 16:47:50 -0800 | |
| commit | 9d5055a2bcb231ea13e8da8f64bd93398f04225e (patch) | |
| tree | ef8a5ece467fca181d3e40cb0d5133ba8f9f72f2 | |
| parent | 3c3743c5413a81c998f2801573481f65e9e25072 (diff) | |
| parent | 0bb000931bb841e75903d655552d1626ae158707 (diff) | |
Merge "Fix in vertical measurement in text lines with different text sizes"
| -rw-r--r-- | core/java/android/text/TextLine.java | 21 | ||||
| -rw-r--r-- | graphics/java/android/graphics/Paint.java | 1 | 
2 files changed, 21 insertions, 1 deletions
diff --git a/core/java/android/text/TextLine.java b/core/java/android/text/TextLine.java index 2f7482c2f15d..a6fd2f11ab38 100644 --- a/core/java/android/text/TextLine.java +++ b/core/java/android/text/TextLine.java @@ -663,6 +663,25 @@ class TextLine {      }      /** +     * @param wp +     */ +    private static void expandMetricsFromPaint(FontMetricsInt fmi, TextPaint wp) { +        final int previousTop     = fmi.top; +        final int previousAscent  = fmi.ascent; +        final int previousDescent = fmi.descent; +        final int previousBottom  = fmi.bottom; +        final int previousLeading = fmi.leading; + +        wp.getFontMetricsInt(fmi); + +        fmi.top     = Math.min(fmi.top,     previousTop); +        fmi.ascent  = Math.min(fmi.ascent,  previousAscent); +        fmi.descent = Math.max(fmi.descent, previousDescent); +        fmi.bottom  = Math.max(fmi.bottom,  previousBottom); +        fmi.leading = Math.max(fmi.leading, previousLeading); +    } + +    /**       * Utility function for measuring and rendering text.  The text must       * not include a tab or emoji.       * @@ -703,7 +722,7 @@ class TextLine {          }          if (fmi != null) { -            wp.getFontMetricsInt(fmi); +            expandMetricsFromPaint(fmi, wp);          }          if (c != null) { diff --git a/graphics/java/android/graphics/Paint.java b/graphics/java/android/graphics/Paint.java index 62fbfb45668a..e3bb6eb5f58a 100644 --- a/graphics/java/android/graphics/Paint.java +++ b/graphics/java/android/graphics/Paint.java @@ -1818,6 +1818,7 @@ public class Paint {          nativeGetCharArrayBounds(mNativePaint, text, index, count, bounds);      } +    @Override      protected void finalize() throws Throwable {          finalizer(mNativePaint);      }  |