OSDN Git Service

Don't ignore accessibility overlays during visibility computation
authorAlan Viverette <alanv@google.com>
Tue, 18 Nov 2014 18:25:04 +0000 (10:25 -0800)
committerAlan Viverette <alanv@google.com>
Tue, 18 Nov 2014 18:25:04 +0000 (10:25 -0800)
Just don't use then to compute unaccounted space. This is a partial
revert of commit 9538eea5ff6f8e2183ced81b5b8eac60b0e774ea.

Change-Id: Ie2e29c8934da8ef707d20db1333abd4e240cd213

services/core/java/com/android/server/wm/AccessibilityController.java

index 7e6da8b..0cbf03a 100644 (file)
@@ -992,12 +992,6 @@ 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);
@@ -1018,8 +1012,14 @@ final class AccessibilityController {
                         }
                     }
 
-                    unaccountedSpace.op(boundsInScreen, unaccountedSpace,
-                            Region.Op.REVERSE_DIFFERENCE);
+                    // 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()) {