diff options
| author | Alan Viverette <alanv@google.com> | 2015-05-15 11:30:21 -0700 |
|---|---|---|
| committer | Alan Viverette <alanv@google.com> | 2015-05-15 11:30:21 -0700 |
| commit | a7ea65e239581c84c3ae80f42f5a1827d48fc876 (patch) | |
| tree | 346b2ac9d1ddd32fa5221108a53b7e25b6e96127 /core/java/android/view/ViewRootImpl.java | |
| parent | 79d0c080a060b340e87d9211f5b174613b67d947 (diff) | |
| download | frameworks_base-a7ea65e239581c84c3ae80f42f5a1827d48fc876.zip frameworks_base-a7ea65e239581c84c3ae80f42f5a1827d48fc876.tar.gz frameworks_base-a7ea65e239581c84c3ae80f42f5a1827d48fc876.tar.bz2 | |
Invalidate old accessibility bounds on CONTENT_CHANGE
Bug: 20950124
Change-Id: Id19924358b538f9b7754de3a0c019433817dc1fc
Diffstat (limited to 'core/java/android/view/ViewRootImpl.java')
| -rw-r--r-- | core/java/android/view/ViewRootImpl.java | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 4f2a3fa..0901c6c 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -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 |
