summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2020-11-05 16:46:06 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2020-11-05 16:46:06 +0000
commitdc030d615f3c227acc7adae9719a7404c56327bb (patch)
tree70c4d01b3db531a3f05325799f4dd54bc30bb992
parente5975c10eee41771114475dc5ab9287668a5ab37 (diff)
parent1e4597408ef059f468de8223029573b45d51e187 (diff)
Merge "Do not use surface crop as touchable region in standard task"
-rw-r--r--services/core/java/com/android/server/wm/InputMonitor.java7
-rw-r--r--services/core/java/com/android/server/wm/InputWindowHandleWrapper.java5
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java2
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);