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

Commit a7ea65e2 authored by Alan Viverette's avatar Alan Viverette
Browse files

Invalidate old accessibility bounds on CONTENT_CHANGE

Bug: 20950124
Change-Id: Id19924358b538f9b7754de3a0c019433817dc1fc
parent 79d0c080
Loading
Loading
Loading
Loading
+13 −2
Original line number Diff line number Diff line
@@ -966,6 +966,12 @@ public final class ViewRootImpl implements ViewParent,
            }
        }

        invalidateRectOnScreen(dirty);

        return null;
    }

    private void invalidateRectOnScreen(Rect dirty) {
        final Rect localDirty = mDirty;
        if (!localDirty.isEmpty() && !localDirty.contains(dirty)) {
            mAttachInfo.mSetIgnoreDirtyState = true;
@@ -985,8 +991,6 @@ public final class ViewRootImpl implements ViewParent,
        if (!mWillDrawSoon && (intersected || mIsAnimating)) {
            scheduleTraversals();
        }

        return null;
    }

    void setWindowStopped(boolean stopped) {
@@ -6393,7 +6397,14 @@ public final class ViewRootImpl implements ViewParent,
        }

        // Refresh the node for the focused virtual view.
        final Rect oldBounds = mTempRect;
        mAccessibilityFocusedVirtualView.getBoundsInScreen(oldBounds);
        mAccessibilityFocusedVirtualView = provider.createAccessibilityNodeInfo(focusedChildId);
        final Rect newBounds = mAccessibilityFocusedVirtualView.getBoundsInScreen();
        if (!oldBounds.equals(newBounds)) {
            oldBounds.union(newBounds);
            invalidateRectOnScreen(oldBounds);
        }
    }

    @Override
+9 −0
Original line number Diff line number Diff line
@@ -1494,6 +1494,15 @@ public class AccessibilityNodeInfo implements Parcelable {
                mBoundsInScreen.right, mBoundsInScreen.bottom);
    }

    /**
     * Returns the actual rect containing the node bounds in screen coordinates.
     *
     * @hide Not safe to expose outside the framework.
     */
    public Rect getBoundsInScreen() {
        return mBoundsInScreen;
    }

    /**
     * Sets the node bounds in screen coordinates.
     * <p>