Merge "Do not use surface crop as touchable region in standard task"

This commit is contained in:
TreeHugger Robot
2020-11-05 16:46:06 +00:00
committed by Android (Google) Code Review
3 changed files with 6 additions and 8 deletions

View File

@@ -326,11 +326,12 @@ final class InputMonitor {
// the surface hierarchy. // the surface hierarchy.
// TODO(b/168252846): we have some issues with modal-windows, so we need to cross // TODO(b/168252846): we have some issues with modal-windows, so we need to cross
// that bridge now that we organize full-screen Tasks. // 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; useSurfaceCrop = true;
} else if (task.cropWindowsToStackBounds() && !w.inFreeformWindowingMode()) { } else if (task.cropWindowsToStackBounds() && !w.inFreeformWindowingMode()) {
inputWindowHandle.replaceTouchableRegionWithCrop( inputWindowHandle.setTouchableRegionCrop(task.getRootTask().getSurfaceControl());
task.getRootTask().getSurfaceControl()); inputWindowHandle.setReplaceTouchableRegionWithCrop(false);
useSurfaceCrop = true; useSurfaceCrop = true;
} }
} }

View File

@@ -255,11 +255,6 @@ class InputWindowHandleWrapper {
mChanged = true; mChanged = true;
} }
void replaceTouchableRegionWithCrop(@Nullable SurfaceControl bounds) {
setTouchableRegionCrop(bounds);
setReplaceTouchableRegionWithCrop(true);
}
void setTouchableRegionCrop(@Nullable SurfaceControl bounds) { void setTouchableRegionCrop(@Nullable SurfaceControl bounds) {
if (mHandle.touchableRegionSurfaceControl.get() == bounds) { if (mHandle.touchableRegionSurfaceControl.get() == bounds) {
return; return;

View File

@@ -694,6 +694,8 @@ public class WindowStateTests extends WindowTestsBase {
mDisplayContent.getInputMonitor().populateInputWindowHandle(handleWrapper, win); mDisplayContent.getInputMonitor().populateInputWindowHandle(handleWrapper, win);
assertTrue(handleWrapper.isChanged()); 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(inputChannelToken, handle.token);
assertEquals(win.mActivityRecord.getInputApplicationHandle(false /* update */), assertEquals(win.mActivityRecord.getInputApplicationHandle(false /* update */),
handle.inputApplicationHandle); handle.inputApplicationHandle);