summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2019-05-29 06:00:15 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2019-05-29 06:00:15 +0000
commit99d4417d4fce334dae5a033addfc08ce4b5f0ddf (patch)
tree2bd825ea1d9783fcfef6fdaf3c4073b6efae6d21
parent3c0eeb951f38f12685e51e821f6630ec998c3f85 (diff)
parent1fc214bdfc6253be161581cf159a7ab28988f26e (diff)
Merge "Fix a deadlock between WindowManagerGlobal and WindowManagerService" into qt-dev
-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