Merge "Fix some drawing artifacts/bugs around overlays/text anchors" into gingerbread
This commit is contained in:
@@ -3542,10 +3542,10 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
|
|||||||
for (int i = 0; i < childCount; i++) {
|
for (int i = 0; i < childCount; i++) {
|
||||||
final View child = getChildAt(i);
|
final View child = getChildAt(i);
|
||||||
if (child.isOverlayEnabled()) {
|
if (child.isOverlayEnabled()) {
|
||||||
canvas.translate(child.mLeft + child.mScrollX, child.mTop + child.mScrollY);
|
canvas.translate(child.mLeft - child.mScrollX, child.mTop - child.mScrollY);
|
||||||
child.onDrawOverlay(canvas);
|
child.onDrawOverlay(canvas);
|
||||||
canvas.translate(-(child.mLeft + child.mScrollX),
|
canvas.translate(-(child.mLeft - child.mScrollX),
|
||||||
-(child.mTop + child.mScrollY));
|
-(child.mTop - child.mScrollY));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7727,8 +7727,9 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
|
|||||||
bounds.bottom = bounds.top + drawableHeight;
|
bounds.bottom = bounds.top + drawableHeight;
|
||||||
|
|
||||||
convertFromViewportToContentCoordinates(bounds);
|
convertFromViewportToContentCoordinates(bounds);
|
||||||
|
invalidate();
|
||||||
mDrawable.setBounds(bounds);
|
mDrawable.setBounds(bounds);
|
||||||
postInvalidate();
|
invalidate();
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean hasFingerOn(float x, float y) {
|
boolean hasFingerOn(float x, float y) {
|
||||||
@@ -7745,9 +7746,16 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
|
|||||||
return Rect.intersects(mDrawable.getBounds(), fingerRect);
|
return Rect.intersects(mDrawable.getBounds(), fingerRect);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void invalidate() {
|
||||||
|
final Rect bounds = mDrawable.getBounds();
|
||||||
|
TextView.this.invalidate(bounds.left, bounds.top,
|
||||||
|
bounds.right, bounds.bottom);
|
||||||
|
}
|
||||||
|
|
||||||
void postInvalidate() {
|
void postInvalidate() {
|
||||||
final Rect bounds = mDrawable.getBounds();
|
final Rect bounds = mDrawable.getBounds();
|
||||||
TextView.this.postInvalidate(bounds.left, bounds.top, bounds.right, bounds.bottom);
|
TextView.this.postInvalidate(bounds.left, bounds.top,
|
||||||
|
bounds.right, bounds.bottom);
|
||||||
}
|
}
|
||||||
|
|
||||||
void postInvalidateDelayed(long delay) {
|
void postInvalidateDelayed(long delay) {
|
||||||
|
|||||||
Reference in New Issue
Block a user