diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index 45cdacd503a8a..ce03133413628 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -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();