diff options
Diffstat (limited to 'core/java/android/view/ViewRootImpl.java')
| -rw-r--r-- | core/java/android/view/ViewRootImpl.java | 33 |
1 files changed, 9 insertions, 24 deletions
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 9a1e93187a5d..3f7a5127339d 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -2765,7 +2765,7 @@ public final class ViewRootImpl implements ViewParent, } } - private void handleWindowFocusChanged(boolean reportToClient) { + private void handleWindowFocusChanged() { final boolean hasWindowFocus; final boolean inTouchMode; synchronized (this) { @@ -2800,9 +2800,8 @@ public final class ViewRootImpl implements ViewParent, } catch (RemoteException ex) { } // Retry in a bit. - final Message msg = mHandler.obtainMessage(MSG_WINDOW_FOCUS_CHANGED); - msg.arg1 = reportToClient ? 1 : 0; - mHandler.sendMessageDelayed(msg, 500); + mHandler.sendMessageDelayed(mHandler.obtainMessage( + MSG_WINDOW_FOCUS_CHANGED), 500); return; } } @@ -2819,15 +2818,8 @@ public final class ViewRootImpl implements ViewParent, } if (mView != null) { mAttachInfo.mKeyDispatchState.reset(); - // We dispatch onWindowFocusChanged to child view only when window is gaining / - // losing focus. - // If the focus is updated from top display change but window focus on the display - // remains unchanged, will not callback onWindowFocusChanged again since it may - // be redundant & can affect the state when it callbacks. - if (reportToClient) { - mView.dispatchWindowFocusChanged(hasWindowFocus); - mAttachInfo.mTreeObserver.dispatchOnWindowFocusChange(hasWindowFocus); - } + mView.dispatchWindowFocusChanged(hasWindowFocus); + mAttachInfo.mTreeObserver.dispatchOnWindowFocusChange(hasWindowFocus); if (mAttachInfo.mTooltipHost != null) { mAttachInfo.mTooltipHost.hideTooltip(); } @@ -4428,7 +4420,7 @@ public final class ViewRootImpl implements ViewParent, } break; case MSG_WINDOW_FOCUS_CHANGED: { - handleWindowFocusChanged(msg.arg1 != 0 /* reportToClient */); + handleWindowFocusChanged(); } break; case MSG_DIE: doDie(); @@ -7372,7 +7364,7 @@ public final class ViewRootImpl implements ViewParent, } if (stage != null) { - handleWindowFocusChanged(true /* reportToClient */); + handleWindowFocusChanged(); stage.deliver(q); } else { finishInputEvent(q); @@ -7712,11 +7704,6 @@ public final class ViewRootImpl implements ViewParent, } public void windowFocusChanged(boolean hasFocus, boolean inTouchMode) { - windowFocusChanged(hasFocus, inTouchMode, true /* reportToClient */); - } - - public void windowFocusChanged(boolean hasFocus, boolean inTouchMode, - boolean reportToClient) { synchronized (this) { mWindowFocusChanged = true; mUpcomingWindowFocus = hasFocus; @@ -7724,7 +7711,6 @@ public final class ViewRootImpl implements ViewParent, } Message msg = Message.obtain(); msg.what = MSG_WINDOW_FOCUS_CHANGED; - msg.arg1 = reportToClient ? 1 : 0; mHandler.sendMessage(msg); } @@ -8286,11 +8272,10 @@ public final class ViewRootImpl implements ViewParent, } @Override - public void windowFocusChanged(boolean hasFocus, boolean inTouchMode, - boolean reportToClient) { + public void windowFocusChanged(boolean hasFocus, boolean inTouchMode) { final ViewRootImpl viewAncestor = mViewAncestor.get(); if (viewAncestor != null) { - viewAncestor.windowFocusChanged(hasFocus, inTouchMode, reportToClient); + viewAncestor.windowFocusChanged(hasFocus, inTouchMode); } } |
