From 86fcef87b802ee58147127dc5cca940239a30404 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Mon, 17 Aug 2009 17:16:44 -0700 Subject: [PATCH] Don't use BoringLayout to display text that has paragraph-style markup. BoringLayout assumes it doesn't have to do any work to calculate the line height. In this case, though, there may actually be work to be done, so have it fall back to StaticLayout to do the more thorough job. Bug 2051050 --- core/java/android/text/BoringLayout.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/core/java/android/text/BoringLayout.java b/core/java/android/text/BoringLayout.java index 843754b7713c0..944f7354fdb2c 100644 --- a/core/java/android/text/BoringLayout.java +++ b/core/java/android/text/BoringLayout.java @@ -19,6 +19,7 @@ package android.text; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Path; +import android.text.style.ParagraphStyle; import android.util.FloatMath; /** @@ -262,6 +263,14 @@ public class BoringLayout extends Layout implements TextUtils.EllipsizeCallback TextUtils.recycle(temp); + if (boring && text instanceof Spanned) { + Spanned sp = (Spanned) text; + Object[] styles = sp.getSpans(0, text.length(), ParagraphStyle.class); + if (styles.length > 0) { + boring = false; + } + } + if (boring) { Metrics fm = metrics; if (fm == null) {