From 1505d89322936028648836816ef94a58882c0eb2 Mon Sep 17 00:00:00 2001 From: Christine Franks Date: Mon, 26 Apr 2021 09:41:01 -0700 Subject: [PATCH] Check real virtual display id for input devices And update all display's configurations Bug: 184615313 Test: manual Change-Id: I3cebf22bebf650e31b554a412725de644c850e80 --- services/core/java/com/android/server/wm/DisplayContent.java | 4 +--- .../core/java/com/android/server/wm/InputManagerCallback.java | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index c44f4e3cbd717..ea5fd4e95db91 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -2105,9 +2105,7 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp } // Check if input device can dispatch events to current display. - // If display type is virtual, will follow the default display. - if (!mWmService.mInputManager.canDispatchToDisplay(device.getId(), - displayInfo.type == Display.TYPE_VIRTUAL ? DEFAULT_DISPLAY : mDisplayId)) { + if (!mWmService.mInputManager.canDispatchToDisplay(device.getId(), mDisplayId)) { continue; } diff --git a/services/core/java/com/android/server/wm/InputManagerCallback.java b/services/core/java/com/android/server/wm/InputManagerCallback.java index 84616c0bdc8e2..aa7e6c9c80fc5 100644 --- a/services/core/java/com/android/server/wm/InputManagerCallback.java +++ b/services/core/java/com/android/server/wm/InputManagerCallback.java @@ -116,10 +116,8 @@ final class InputManagerCallback implements InputManagerService.WindowManagerCal /** Notifies that the input device configuration has changed. */ @Override public void notifyConfigurationChanged() { - // TODO(multi-display): Notify proper displays that are associated with this input device. - synchronized (mService.mGlobalLock) { - mService.getDefaultDisplayContentLocked().sendNewConfiguration(); + mService.mRoot.forAllDisplays(DisplayContent::sendNewConfiguration); } synchronized (mInputDevicesReadyMonitor) {