diff options
| author | 2019-05-29 06:00:15 +0000 | |
|---|---|---|
| committer | 2019-05-29 06:00:15 +0000 | |
| commit | 99d4417d4fce334dae5a033addfc08ce4b5f0ddf (patch) | |
| tree | 2bd825ea1d9783fcfef6fdaf3c4073b6efae6d21 | |
| parent | 3c0eeb951f38f12685e51e821f6630ec998c3f85 (diff) | |
| parent | 1fc214bdfc6253be161581cf159a7ab28988f26e (diff) | |
Merge "Fix a deadlock between WindowManagerGlobal and WindowManagerService" into qt-dev
| -rw-r--r-- | services/core/java/com/android/server/wm/SystemGesturesPointerEventListener.java | 7 |
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 |