Fudge getRightPaddingOffset in TextView to match clipRect.

A previous change (df68999dc7) adjusted
the clipRect slightly on the right side, but didn't adjust the
padding offset used in fading.

Bug: 18820846
Change-Id: I68c0918f914742d1e7b91f9ea8d5acbd41938233
This commit is contained in:
Roozbeh Pournader
2015-01-14 16:01:40 -08:00
parent 9a19ed17e1
commit 7c0e7db67e

View File

@@ -5017,9 +5017,15 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
return (int) Math.max(0, mShadowDy + mShadowRadius);
}
private int getFudgedPaddingRight() {
// Add sufficient space for cursor and tone marks
int cursorWidth = 2 + (int)mTextPaint.density; // adequate for Material cursors
return Math.max(0, getCompoundPaddingRight() - (cursorWidth - 1));
}
@Override
protected int getRightPaddingOffset() {
return -(getCompoundPaddingRight() - mPaddingRight) +
return -(getFudgedPaddingRight() - mPaddingRight) +
(int) Math.max(0, mShadowDx + mShadowRadius);
}
@@ -5373,13 +5379,9 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
final int vspace = mBottom - mTop - compoundPaddingBottom - compoundPaddingTop;
final int maxScrollY = mLayout.getHeight() - vspace;
// Add sufficient space for cursor and tone marks
int cursorWidth = 2 + (int)mTextPaint.density; // adequate for Material cursors
int fudgedPaddingRight = Math.max(0, compoundPaddingRight - (cursorWidth - 1));
float clipLeft = compoundPaddingLeft + scrollX;
float clipTop = (scrollY == 0) ? 0 : extendedPaddingTop + scrollY;
float clipRight = right - left - fudgedPaddingRight + scrollX;
float clipRight = right - left - getFudgedPaddingRight() + scrollX;
float clipBottom = bottom - top + scrollY -
((scrollY == maxScrollY) ? 0 : extendedPaddingBottom);