summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/wm/SystemGesturesPointerEventListener.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/wm/SystemGesturesPointerEventListener.java b/services/core/java/com/android/server/wm/SystemGesturesPointerEventListener.java
index 854537b4618f..fb781b06f05f 100644
--- a/services/core/java/com/android/server/wm/SystemGesturesPointerEventListener.java
+++ b/services/core/java/com/android/server/wm/SystemGesturesPointerEventListener.java
@@ -113,7 +113,12 @@ class SystemGesturesPointerEventListener implements PointerEventListener {
// statistics because it passes every touch event though a GestureDetector. By creating an
// anonymous subclass of GestureDetector, these statistics will be recorded with a unique
// source name that can be filtered.
- mGestureDetector = new GestureDetector(mContext, new FlingGestureDetector(), mHandler) {};
+
+ // GestureDetector would get a ViewConfiguration instance by context, that may also
+ // create a new WindowManagerImpl for the new display, and lock WindowManagerGlobal
+ // temporarily in the constructor that would make a deadlock.
+ mHandler.post(() -> mGestureDetector =
+ new GestureDetector(mContext, new FlingGestureDetector(), mHandler) {});
}
@Override