diff options
author | 2018-12-06 13:54:33 -0800 | |
---|---|---|
committer | 2018-12-07 00:29:25 +0000 | |
commit | 51625fa3f0663b5f12f0838a619c49a1bfc9533f (patch) | |
tree | fecb64e5e75b7de0e8b92c42bf137d91e94a2cca /services/surfaceflinger/SurfaceFlinger.cpp | |
parent | 5ea451005be4f8b1a91e3b2e8525e092b0515c49 (diff) |
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
Diffstat (limited to 'services/surfaceflinger/SurfaceFlinger.cpp')
-rw-r--r-- | services/surfaceflinger/SurfaceFlinger.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index cd00a8aa8d..43932e093e 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -2754,7 +2754,10 @@ void SurfaceFlinger::updateInputWindows() { 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); |