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

Commit 3ba2c7c6 authored by George Mount's avatar George Mount Committed by Android Git Automerger
Browse files

am 70cb4f3e: Merge "Fix getChildVisibleRect to clip correctly." into lmp-mr1-dev

* commit '70cb4f3e':
  Fix getChildVisibleRect to clip correctly.
parents ba1d4cd4 70cb4f3e
Loading
Loading
Loading
Loading
+23 −7
Original line number Diff line number Diff line
@@ -5045,14 +5045,30 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
            offset.y += dy;
        }

        if (rect.intersect(0, 0, mRight - mLeft, mBottom - mTop)) {
            if (mParent == null) return true;
            r.set((int) (rect.left + 0.5f), (int) (rect.top + 0.5f),
                    (int) (rect.right + 0.5f), (int) (rect.bottom + 0.5f));
            return mParent.getChildVisibleRect(this, r, offset);
        boolean rectIsVisible = true;
        if (mParent instanceof ViewGroup && ((ViewGroup)mParent).getClipChildren()) {
            // clipChildren clips to the child's bounds
            rectIsVisible = rect.intersect(0, 0, mRight - mLeft, mBottom - mTop);
        }

        return false;
        if (rectIsVisible && (mGroupFlags & CLIP_TO_PADDING_MASK) == CLIP_TO_PADDING_MASK) {
            // Clip to padding
            rectIsVisible = rect.intersect(mPaddingLeft, mPaddingTop,
                    mRight - mLeft - mPaddingLeft - mPaddingRight,
                    mBottom - mTop - mPaddingTop - mPaddingBottom);
        }

        if (rectIsVisible && mClipBounds != null) {
            // Clip to clipBounds
            rectIsVisible = rect.intersect(mClipBounds.left, mClipBounds.top, mClipBounds.right,
                    mClipBounds.bottom);
        }
        r.set((int) (rect.left + 0.5f), (int) (rect.top + 0.5f), (int) (rect.right + 0.5f),
                (int) (rect.bottom + 0.5f));
        if (rectIsVisible && mParent != null) {
            rectIsVisible = mParent.getChildVisibleRect(this, r, offset);
        }
        return rectIsVisible;
    }

    /**