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

Commit ac9ad700 authored by Phil Weaver's avatar Phil Weaver
Browse files

Prevent a11y seeing behind tasks w/modal windows.

Bug: 30279147
Change-Id: Iee714031894bec0d5b25e0d0feaf918536e5b124
parent d7a59636
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.