diff --git a/core/java/android/view/GestureExclusionTracker.java b/core/java/android/view/GestureExclusionTracker.java index 6fcdd714f8276..fcc14c1967301 100644 --- a/core/java/android/view/GestureExclusionTracker.java +++ b/core/java/android/view/GestureExclusionTracker.java @@ -44,7 +44,7 @@ class GestureExclusionTracker { while (i.hasNext()) { final GestureExclusionViewInfo info = i.next(); final View v = info.getView(); - if (v == null || !v.isAttachedToWindow()) { + if (v == null || !v.isAttachedToWindow() || !v.isShown()) { mGestureExclusionViewsChanged = true; i.remove(); continue; @@ -122,7 +122,8 @@ class GestureExclusionTracker { public int update() { final View excludedView = getView(); - if (excludedView == null || !excludedView.isAttachedToWindow()) return GONE; + if (excludedView == null || !excludedView.isAttachedToWindow() + || !excludedView.isShown()) return GONE; final List localRects = excludedView.getSystemGestureExclusionRects(); final List newRects = new ArrayList<>(localRects.size()); for (Rect src : localRects) { diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index 1779a80b5d097..6ce712061db0a 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -14403,6 +14403,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, } notifyAppearedOrDisappearedForContentCaptureIfNeeded(isVisible); + updateSystemGestureExclusionRects(); } /**