Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 42b25914 authored by Alan Viverette's avatar Alan Viverette Committed by Android (Google) Code Review
Browse files

Merge "Ignore accessibility overlays during visible window computation" into lmp-mr1-dev

parents 0c242376 9538eea5
Loading
Loading
Loading
Loading
+13 −14
Original line number Diff line number Diff line
@@ -984,12 +984,7 @@ final class AccessibilityController {

                final int visibleWindowCount = visibleWindows.size();
                for (int i = visibleWindowCount - 1; i >= 0; i--) {
                    WindowState windowState = visibleWindows.valueAt(i);

                    // Compute the bounds in the screen.
                    Rect boundsInScreen = mTempRect;
                    computeWindowBoundsInScreen(windowState, boundsInScreen);

                    final WindowState windowState = visibleWindows.valueAt(i);
                    final int flags = windowState.mAttrs.flags;

                    // If the window is not touchable - ignore.
@@ -997,6 +992,16 @@ final class AccessibilityController {
                        continue;
                    }

                    // If the window is an accessibility overlay - ignore.
                    if (windowState.mAttrs.type ==
                            WindowManager.LayoutParams.TYPE_ACCESSIBILITY_OVERLAY) {
                        continue;
                    }

                    // Compute the bounds in the screen.
                    final Rect boundsInScreen = mTempRect;
                    computeWindowBoundsInScreen(windowState, boundsInScreen);

                    // If the window is completely covered by other windows - ignore.
                    if (unaccountedSpace.quickReject(boundsInScreen)) {
                        continue;
@@ -1013,14 +1018,8 @@ final class AccessibilityController {
                        }
                    }

                    // Account for the space this window takes if the window
                    // is not an accessibility overlay which does not change
                    // the reported windows.
                    if (windowState.mAttrs.type == WindowManager.LayoutParams
                            .TYPE_ACCESSIBILITY_OVERLAY) {
                    unaccountedSpace.op(boundsInScreen, unaccountedSpace,
                            Region.Op.REVERSE_DIFFERENCE);
                    }

                    // We figured out what is touchable for the entire screen - done.
                    if (unaccountedSpace.isEmpty()) {