diff options
Diffstat (limited to 'libs')
| -rw-r--r-- | libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayImeController.java | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayImeController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayImeController.java index b2ac61cf3f6e..cb27ad9f58f5 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayImeController.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayImeController.java @@ -249,6 +249,7 @@ public class DisplayImeController implements DisplayController.OnDisplaysChanged !activeControl.getSurfacePosition().equals(lastSurfacePosition); final boolean leashChanged = !haveSameLeash(mImeSourceControl, activeControl); + final InsetsSourceControl lastImeControl = mImeSourceControl; mImeSourceControl = activeControl; if (mAnimation != null) { if (positionChanged) { @@ -262,6 +263,9 @@ public class DisplayImeController implements DisplayController.OnDisplaysChanged removeImeSurface(); } } + if (lastImeControl != null) { + lastImeControl.release(SurfaceControl::release); + } } } } |