Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4258bfb7 authored by Adam Powell's avatar Adam Powell Committed by Android (Google) Code Review
Browse files

Merge "Fix some drawing artifacts/bugs around overlays/text anchors" into gingerbread

parents 7d4739be 23bd5f50
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -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));
                }
                }
            }
            }
        }
        }
+10 −2
Original line number Original line Diff line number Diff line
@@ -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) {