Loading services/core/java/com/android/server/policy/PhoneWindowManager.java +4 −1 Original line number Diff line number Diff line Loading @@ -2549,12 +2549,15 @@ public class PhoneWindowManager implements WindowManagerPolicy { @Override public long interceptKeyBeforeDispatching(WindowState win, KeyEvent event, int policyFlags) { final long result = interceptKeyBeforeDispatchingInner(win, event, policyFlags); final int eventDisplayId = event.getDisplayId(); if (result == 0 && !mPerDisplayFocusEnabled && event.getDisplayId() != mTopFocusedDisplayId) { && eventDisplayId != INVALID_DISPLAY && eventDisplayId != mTopFocusedDisplayId) { // Someone tries to send a key event to a display which doesn't have a focused window. // We drop the event here, or it will cause ANR. // TODO (b/121057974): The user may be confused about why the key doesn't work, so we // may need to deal with this problem. Slog.i(TAG, "Dropping this event targeting display #" + eventDisplayId + " because the focus is on display #" + mTopFocusedDisplayId); return -1; } return result; Loading services/core/java/com/android/server/wm/RootWindowContainer.java +1 −0 Original line number Diff line number Diff line Loading @@ -184,6 +184,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent> if (mTopFocusedDisplayId != topFocusedDisplayId) { mTopFocusedDisplayId = topFocusedDisplayId; mWmService.mInputManager.setFocusedDisplay(topFocusedDisplayId); mWmService.mPolicy.setTopFocusedDisplay(topFocusedDisplayId); if (DEBUG_FOCUS_LIGHT) Slog.v(TAG_WM, "New topFocusedDisplayId=" + topFocusedDisplayId); } Loading Loading
services/core/java/com/android/server/policy/PhoneWindowManager.java +4 −1 Original line number Diff line number Diff line Loading @@ -2549,12 +2549,15 @@ public class PhoneWindowManager implements WindowManagerPolicy { @Override public long interceptKeyBeforeDispatching(WindowState win, KeyEvent event, int policyFlags) { final long result = interceptKeyBeforeDispatchingInner(win, event, policyFlags); final int eventDisplayId = event.getDisplayId(); if (result == 0 && !mPerDisplayFocusEnabled && event.getDisplayId() != mTopFocusedDisplayId) { && eventDisplayId != INVALID_DISPLAY && eventDisplayId != mTopFocusedDisplayId) { // Someone tries to send a key event to a display which doesn't have a focused window. // We drop the event here, or it will cause ANR. // TODO (b/121057974): The user may be confused about why the key doesn't work, so we // may need to deal with this problem. Slog.i(TAG, "Dropping this event targeting display #" + eventDisplayId + " because the focus is on display #" + mTopFocusedDisplayId); return -1; } return result; Loading
services/core/java/com/android/server/wm/RootWindowContainer.java +1 −0 Original line number Diff line number Diff line Loading @@ -184,6 +184,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent> if (mTopFocusedDisplayId != topFocusedDisplayId) { mTopFocusedDisplayId = topFocusedDisplayId; mWmService.mInputManager.setFocusedDisplay(topFocusedDisplayId); mWmService.mPolicy.setTopFocusedDisplay(topFocusedDisplayId); if (DEBUG_FOCUS_LIGHT) Slog.v(TAG_WM, "New topFocusedDisplayId=" + topFocusedDisplayId); } Loading