diff options
author | Romain Guy <romainguy@android.com> | 2009-06-24 17:17:51 -0700 |
---|---|---|
committer | Romain Guy <romainguy@android.com> | 2009-06-24 17:17:51 -0700 |
commit | 076dc9fa57d58261d8edf26b1905019a1f8464d3 (patch) | |
tree | 5ffde4867403f30afd260194cec68a213d77b2c9 /core/java/android/widget | |
parent | 956070383945db5f842ec05e507fd0233705738c (diff) | |
download | frameworks_base-076dc9fa57d58261d8edf26b1905019a1f8464d3.zip frameworks_base-076dc9fa57d58261d8edf26b1905019a1f8464d3.tar.gz frameworks_base-076dc9fa57d58261d8edf26b1905019a1f8464d3.tar.bz2 |
Fix TextView's fading edge when compound drawables are setup.
TextView was not correctly taking into account the extra space taken
by compound drawable when drawing the fading edge of a marquee'd
text.
Diffstat (limited to 'core/java/android/widget')
-rw-r--r-- | core/java/android/widget/TextView.java | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index 9479f9e..d8ed4f0 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -3681,12 +3681,13 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener @Override protected boolean isPaddingOffsetRequired() { - return mShadowRadius != 0; + return mShadowRadius != 0 || mDrawables != null; } @Override protected int getLeftPaddingOffset() { - return (int) Math.min(0, mShadowDx - mShadowRadius); + return getCompoundPaddingLeft() - mPaddingLeft + + (int) Math.min(0, mShadowDx - mShadowRadius); } @Override @@ -3701,7 +3702,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener @Override protected int getRightPaddingOffset() { - return (int) Math.max(0, mShadowDx + mShadowRadius); + return -(getCompoundPaddingRight() - mPaddingRight) + + (int) Math.max(0, mShadowDx + mShadowRadius); } @Override @@ -6665,9 +6667,10 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener } else if (getLineCount() == 1) { switch (mGravity & Gravity.HORIZONTAL_GRAVITY_MASK) { case Gravity.LEFT: - return (mLayout.getLineRight(0) - mScrollX - (mRight - mLeft) - - getCompoundPaddingLeft() - getCompoundPaddingRight()) / - getHorizontalFadingEdgeLength(); + final int textWidth = (mRight - mLeft) - getCompoundPaddingLeft() - + getCompoundPaddingRight(); + final float lineWidth = mLayout.getLineWidth(0); + return (lineWidth - textWidth) / getHorizontalFadingEdgeLength(); case Gravity.RIGHT: return 0.0f; case Gravity.CENTER_HORIZONTAL: |