diff options
3 files changed, 21 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java index b45dc7ff0f6b..ee8b0996af21 100644 --- a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java +++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java @@ -900,11 +900,14 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub final String mImeControlTargetName; @Nullable final String mImeTargetNameFromWm; + @Nullable + final String mImeSurfaceParentName; Entry(ClientState client, EditorInfo editorInfo, String focusedWindowName, @SoftInputModeFlags int softInputMode, @SoftInputShowHideReason int reason, boolean inFullscreenMode, String requestWindowName, - @Nullable String imeControlTargetName, @Nullable String imeTargetName) { + @Nullable String imeControlTargetName, @Nullable String imeTargetName, + @Nullable String imeSurfaceParentName) { mClientState = client; mEditorInfo = editorInfo; mFocusedWindowName = focusedWindowName; @@ -916,6 +919,7 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub mRequestWindowName = requestWindowName; mImeControlTargetName = imeControlTargetName; mImeTargetNameFromWm = imeTargetName; + mImeSurfaceParentName = imeSurfaceParentName; } } @@ -962,6 +966,9 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub pw.println(" imeTargetNameFromWm=" + entry.mImeTargetNameFromWm); pw.print(prefix); + pw.println(" imeSurfaceParentName=" + entry.mImeSurfaceParentName); + + pw.print(prefix); pw.print(" editorInfo: "); pw.print(" inputType=" + entry.mEditorInfo.inputType); pw.print(" privateImeOptions=" + entry.mEditorInfo.privateImeOptions); @@ -4619,7 +4626,8 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub mSoftInputShowHideHistory.addEntry(new SoftInputShowHideHistory.Entry( mCurFocusedWindowClient, mCurEditorInfo, info.focusedWindowName, mCurFocusedWindowSoftInputMode, reason, mInFullscreenMode, - info.requestWindowName, info.imeControlTargetName, info.imeLayerTargetName)); + info.requestWindowName, info.imeControlTargetName, info.imeLayerTargetName, + info.imeSurfaceParentName)); } @BinderThread diff --git a/services/core/java/com/android/server/wm/WindowManagerInternal.java b/services/core/java/com/android/server/wm/WindowManagerInternal.java index 9eee7ba871a2..099fe1b22108 100644 --- a/services/core/java/com/android/server/wm/WindowManagerInternal.java +++ b/services/core/java/com/android/server/wm/WindowManagerInternal.java @@ -808,12 +808,17 @@ public abstract class WindowManagerInternal { */ public final String imeLayerTargetName; + /** The surface parent of the IME container. */ + public final String imeSurfaceParentName; + public ImeTargetInfo(String focusedWindowName, String requestWindowName, - String imeControlTargetName, String imeLayerTargetName) { + String imeControlTargetName, String imeLayerTargetName, + String imeSurfaceParentName) { this.focusedWindowName = focusedWindowName; this.requestWindowName = requestWindowName; this.imeControlTargetName = imeControlTargetName; this.imeLayerTargetName = imeLayerTargetName; + this.imeSurfaceParentName = imeSurfaceParentName; } } diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index bcf05a6f8fe1..233f510553e4 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -8186,6 +8186,7 @@ public class WindowManagerService extends IWindowManager.Stub final String requestWindowName; final String imeControlTargetName; final String imeLayerTargetName; + final String imeSurfaceParentName; synchronized (mGlobalLock) { final WindowState focusedWin = mWindowMap.get(focusedToken); focusedWindowName = focusedWin != null ? focusedWin.getName() : "null"; @@ -8202,15 +8203,17 @@ public class WindowManagerService extends IWindowManager.Stub } final InsetsControlTarget target = dc.getImeTarget(IME_TARGET_LAYERING); imeLayerTargetName = target != null ? target.getWindow().getName() : "null"; + final SurfaceControl imeParent = dc.mInputMethodSurfaceParent; + imeSurfaceParentName = imeParent != null ? imeParent.toString() : "null"; if (show) { dc.onShowImeRequested(); } } else { - imeControlTargetName = imeLayerTargetName = "no-display"; + imeControlTargetName = imeLayerTargetName = imeSurfaceParentName = "no-display"; } } return new ImeTargetInfo(focusedWindowName, requestWindowName, imeControlTargetName, - imeLayerTargetName); + imeLayerTargetName, imeSurfaceParentName); } @Override |