diff options
Diffstat (limited to 'core/java/android/view/ViewRootImpl.java')
| -rw-r--r-- | core/java/android/view/ViewRootImpl.java | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index c5c7746d4d11..62c87ac57594 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -635,6 +635,8 @@ public final class ViewRootImpl implements ViewParent, if (view.getImportantForAccessibility() == View.IMPORTANT_FOR_ACCESSIBILITY_AUTO) { view.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); } + + setAccessibilityFocusedHost(null); } } } @@ -2339,6 +2341,9 @@ public final class ViewRootImpl implements ViewParent, if (mAccessibilityFocusedVirtualView == null) { mAccessibilityFocusedVirtualView = provider.findAccessibilitiyFocus(View.NO_ID); } + if (mAccessibilityFocusedVirtualView == null) { + return; + } mAccessibilityFocusedVirtualView.getBoundsInScreen(bounds); bounds.offset(-mAttachInfo.mWindowLeft, -mAttachInfo.mWindowTop); } @@ -2865,6 +2870,8 @@ public final class ViewRootImpl implements ViewParent, mHasHadWindowFocus = true; } + setAccessibilityFocusedHost(null); + if (mView != null && mAccessibilityManager.isEnabled()) { if (hasWindowFocus) { mView.sendAccessibilityEvent( @@ -2883,9 +2890,6 @@ public final class ViewRootImpl implements ViewParent, if (mAccessibilityFocusedHost == null) { mView.requestAccessibilityFocus(); } - } else { - // Clear accessibility focus when the window loses input focus. - setAccessibilityFocusedHost(null); } } } |
