From 7c0e7db67efda303a9964746dfcc7db243fb5fb4 Mon Sep 17 00:00:00 2001 From: Roozbeh Pournader Date: Wed, 14 Jan 2015 16:01:40 -0800 Subject: [PATCH] Fudge getRightPaddingOffset in TextView to match clipRect. A previous change (df68999dc7de3893ca80e4c736704dcc9ed94e35) adjusted the clipRect slightly on the right side, but didn't adjust the padding offset used in fading. Bug: 18820846 Change-Id: I68c0918f914742d1e7b91f9ea8d5acbd41938233 --- core/java/android/widget/TextView.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index 765d196509c59..cc5d45775c265 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -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);