diff options
| author | 2020-11-05 16:46:06 +0000 | |
|---|---|---|
| committer | 2020-11-05 16:46:06 +0000 | |
| commit | dc030d615f3c227acc7adae9719a7404c56327bb (patch) | |
| tree | 70c4d01b3db531a3f05325799f4dd54bc30bb992 | |
| parent | e5975c10eee41771114475dc5ab9287668a5ab37 (diff) | |
| parent | 1e4597408ef059f468de8223029573b45d51e187 (diff) | |
Merge "Do not use surface crop as touchable region in standard task"
3 files changed, 6 insertions, 8 deletions
diff --git a/services/core/java/com/android/server/wm/InputMonitor.java b/services/core/java/com/android/server/wm/InputMonitor.java index 43c47417d95f..086513bb141f 100644 --- a/services/core/java/com/android/server/wm/InputMonitor.java +++ b/services/core/java/com/android/server/wm/InputMonitor.java @@ -326,11 +326,12 @@ final class InputMonitor { // the surface hierarchy. // TODO(b/168252846): we have some issues with modal-windows, so we need to cross // that bridge now that we organize full-screen Tasks. - inputWindowHandle.replaceTouchableRegionWithCrop(null /* Use this surfaces crop */); + inputWindowHandle.setTouchableRegionCrop(null /* Use this surfaces crop */); + inputWindowHandle.setReplaceTouchableRegionWithCrop(true); useSurfaceCrop = true; } else if (task.cropWindowsToStackBounds() && !w.inFreeformWindowingMode()) { - inputWindowHandle.replaceTouchableRegionWithCrop( - task.getRootTask().getSurfaceControl()); + inputWindowHandle.setTouchableRegionCrop(task.getRootTask().getSurfaceControl()); + inputWindowHandle.setReplaceTouchableRegionWithCrop(false); useSurfaceCrop = true; } } diff --git a/services/core/java/com/android/server/wm/InputWindowHandleWrapper.java b/services/core/java/com/android/server/wm/InputWindowHandleWrapper.java index 1fbeb1fd456b..9339f3475684 100644 --- a/services/core/java/com/android/server/wm/InputWindowHandleWrapper.java +++ b/services/core/java/com/android/server/wm/InputWindowHandleWrapper.java @@ -255,11 +255,6 @@ class InputWindowHandleWrapper { mChanged = true; } - void replaceTouchableRegionWithCrop(@Nullable SurfaceControl bounds) { - setTouchableRegionCrop(bounds); - setReplaceTouchableRegionWithCrop(true); - } - void setTouchableRegionCrop(@Nullable SurfaceControl bounds) { if (mHandle.touchableRegionSurfaceControl.get() == bounds) { return; diff --git a/services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java b/services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java index 5c4563e0ce1b..88a3f972f83e 100644 --- a/services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java @@ -694,6 +694,8 @@ public class WindowStateTests extends WindowTestsBase { mDisplayContent.getInputMonitor().populateInputWindowHandle(handleWrapper, win); assertTrue(handleWrapper.isChanged()); + // The window of standard resizable task should not use surface crop as touchable region. + assertFalse(handle.replaceTouchableRegionWithCrop); assertEquals(inputChannelToken, handle.token); assertEquals(win.mActivityRecord.getInputApplicationHandle(false /* update */), handle.inputApplicationHandle); |