summaryrefslogtreecommitdiffstats
path: root/core/java/android/widget
diff options
context:
space:
mode:
authorRomain Guy <romainguy@android.com>2009-06-24 17:17:51 -0700
committerRomain Guy <romainguy@android.com>2009-06-24 17:17:51 -0700
commit076dc9fa57d58261d8edf26b1905019a1f8464d3 (patch)
tree5ffde4867403f30afd260194cec68a213d77b2c9 /core/java/android/widget
parent956070383945db5f842ec05e507fd0233705738c (diff)
downloadframeworks_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.java15
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: