summaryrefslogtreecommitdiff
path: root/android/text/Layout.java
diff options
context:
space:
mode:
Diffstat (limited to 'android/text/Layout.java')
-rw-r--r--android/text/Layout.java14
1 files changed, 12 insertions, 2 deletions
diff --git a/android/text/Layout.java b/android/text/Layout.java
index ac5c2e92..60fff738 100644
--- a/android/text/Layout.java
+++ b/android/text/Layout.java
@@ -319,6 +319,8 @@ public abstract class Layout {
private float getJustifyWidth(int lineNum) {
Alignment paraAlign = mAlignment;
+ TabStops tabStops = null;
+ boolean tabStopsIsInitialized = false;
int left = 0;
int right = mWidth;
@@ -369,6 +371,10 @@ public abstract class Layout {
}
}
+ if (getLineContainsTab(lineNum)) {
+ tabStops = new TabStops(TAB_INCREMENT, spans);
+ }
+
final Alignment align;
if (paraAlign == Alignment.ALIGN_LEFT) {
align = (dir == DIR_LEFT_TO_RIGHT) ? Alignment.ALIGN_NORMAL : Alignment.ALIGN_OPPOSITE;
@@ -1417,6 +1423,7 @@ public abstract class Layout {
float dist = Math.abs(getHorizontal(max, primary) - horiz);
if (dist <= bestdist) {
+ bestdist = dist;
best = max;
}
@@ -1563,7 +1570,7 @@ public abstract class Layout {
// XXX: we don't care about tabs
tl.set(mPaint, mText, lineStart, lineEnd, lineDir, directions, false, null);
caret = lineStart + tl.getOffsetToLeftRightOf(caret - lineStart, toLeft);
- TextLine.recycle(tl);
+ tl = TextLine.recycle(tl);
return caret;
}
@@ -1887,7 +1894,10 @@ public abstract class Layout {
int margin = 0;
- boolean useFirstLineMargin = lineStart == 0 || spanned.charAt(lineStart - 1) == '\n';
+ boolean isFirstParaLine = lineStart == 0 ||
+ spanned.charAt(lineStart - 1) == '\n';
+
+ boolean useFirstLineMargin = isFirstParaLine;
for (int i = 0; i < spans.length; i++) {
if (spans[i] instanceof LeadingMarginSpan2) {
int spStart = spanned.getSpanStart(spans[i]);