Allow touch regions beyond layers from task managers

Task managers may need to receive touch events out of task layer crops
to resize tasks in freeform windows.

Bug: 258070472
Test: Resize tasks without loosened task layer crops.
Change-Id: I70cd2edf5720759e171298c1864854ab81b13b27
This commit is contained in:
Garfield Tan
2023-03-13 14:04:18 -07:00
parent 93ce6198ff
commit 7888447c34

View File

@@ -8849,7 +8849,13 @@ public class WindowManagerService extends IWindowManager.Stub
} else {
h.touchableRegion.set(region);
h.replaceTouchableRegionWithCrop = false;
h.setTouchableRegionCrop(surface);
// Task managers may need to receive input events around task layers to resize tasks.
final int permissionResult = mContext.checkPermission(
permission.MANAGE_ACTIVITY_TASKS, callingPid, callingUid);
if (permissionResult != PackageManager.PERMISSION_GRANTED) {
h.setTouchableRegionCrop(surface);
}
}
final SurfaceControl.Transaction t = mTransactionFactory.get();