Merge "Do not use surface crop as touchable region in standard task"
This commit is contained in:
committed by
Android (Google) Code Review
commit
dc030d615f
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user