commit | efe224d9ed8c129aaddc2bf6c6f07f777a566e70 | [log] [tgz] |
---|---|---|
author | TreeHugger Robot <treehugger-gerrit@google.com> | Tue Mar 12 05:10:58 2019 +0000 |
committer | Android (Google) Code Review <android-gerrit@google.com> | Tue Mar 12 05:10:58 2019 +0000 |
tree | fccc8152df8bed8a962a7ea4cc6a9adbd62a7369 | |
parent | afa501b1905af6b69cea9e86c8df2e23df42da38 [diff] | |
parent | 3f2de7479c884dd7c89dbab0a0c45bc1da1f564b [diff] |
Merge "Fix leakage of input window handle on removed display"
diff --git a/services/core/java/com/android/server/input/InputManagerService.java b/services/core/java/com/android/server/input/InputManagerService.java index 87c7441..622c49e 100644 --- a/services/core/java/com/android/server/input/InputManagerService.java +++ b/services/core/java/com/android/server/input/InputManagerService.java
@@ -1452,6 +1452,11 @@ nativeSetFocusedDisplay(mPtr, displayId); } + /** Clean up input window handles of the given display. */ + public void onDisplayRemoved(int displayId) { + nativeSetInputWindows(mPtr, null /* windowHandles */, displayId); + } + @Override public void requestPointerCapture(IBinder windowToken, boolean enabled) { if (mFocusedWindow == null || mFocusedWindow.asBinder() != windowToken) {
diff --git a/services/core/java/com/android/server/wm/InputMonitor.java b/services/core/java/com/android/server/wm/InputMonitor.java index 3c5d911..2a9c2b0 100644 --- a/services/core/java/com/android/server/wm/InputMonitor.java +++ b/services/core/java/com/android/server/wm/InputMonitor.java
@@ -168,6 +168,7 @@ void onDisplayRemoved() { mHandler.removeCallbacks(mUpdateInputWindows); + mService.mInputManager.onDisplayRemoved(mDisplayId); mDisplayRemoved = true; }