Input: Let WM compute touchable region 1/2

- For modal windows let WM define the touchable region. This fixes a regression introduced by
  ag/5700485 where input was sent to background windows.
- When calculating input surface position, ignore the transparent region so that we do not
  incorrectly offset the input. This fixes and issue with input offset in AutoDesk drawing app.

Bug: 120615996, 120612739, 120585467, 120604247
Test: Manual testing with apps listed in bugs. Automated tests to follow
Change-Id: I906f1396ccc0c76f602a9903e696eedfc026f7c2
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index cd00a8a..43932e0 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -2754,7 +2754,10 @@
 
     mDrawingState.traverseInReverseZOrder([&](Layer* layer) {
         if (layer->hasInput()) {
-            inputHandles.add(layer->fillInputInfo(layer->computeScreenBounds()));
+            // When calculating the screen bounds we ignore the transparent region since it may
+            // result in an unwanted offset.
+            inputHandles.add(layer->fillInputInfo(
+                    layer->computeScreenBounds(false /* reduceTransparentRegion */)));
         }
     });
     mInputFlinger->setInputWindows(inputHandles);