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

Commit 7fb5fcc3 authored by Phil Weaver's avatar Phil Weaver Committed by android-build-merger
Browse files

Prevent a11y seeing behind tasks w/modal windows.

am: ac9ad700

Change-Id: I2dd1fa528c657683b99d93effdc5d6338b689bac
parents 03da42c9 ac9ad700
Loading
Loading
Loading
Loading
+10 −5
Original line number Diff line number Diff line
@@ -1071,14 +1071,15 @@ final class AccessibilityController {
                                Region.Op.REVERSE_DIFFERENCE);
                    }

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

                    // If a window is modal it prevents other windows from being touched
                    if ((flags & (WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
                            | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL)) == 0) {
                        // Account for all space in the task, whether the windows in it are
                        // touchable or not. The modal window blocks all touches from the task's
                        // area.
                        unaccountedSpace.op(windowState.getDisplayFrameLw(), unaccountedSpace,
                                Region.Op.REVERSE_DIFFERENCE);

                        if (task != null) {
                            // If the window is associated with a particular task, we can skip the
                            // rest of the windows for that task.
@@ -1090,6 +1091,10 @@ final class AccessibilityController {
                            break;
                        }
                    }
                    // We figured out what is touchable for the entire screen - done.
                    if (unaccountedSpace.isEmpty()) {
                        break;
                    }
                }

                // Always report the focused window.