Merge "Apply getImeControlTarget() only for IME insets" into sc-v2-dev am: 8ccb207e51

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14972855

Change-Id: I9ca005e924c877d44d146189f8962d0950dd5c8a
This commit is contained in:
TreeHugger Robot
2021-06-24 08:47:42 +00:00
committed by Automerger Merge Worker
2 changed files with 11 additions and 5 deletions

View File

@@ -29,6 +29,7 @@ import static com.android.server.wm.ImeInsetsSourceProviderProto.IS_IME_LAYOUT_D
import static com.android.server.wm.WindowManagerService.H.UPDATE_MULTI_WINDOW_STACKS; import static com.android.server.wm.WindowManagerService.H.UPDATE_MULTI_WINDOW_STACKS;
import android.annotation.NonNull; import android.annotation.NonNull;
import android.annotation.Nullable;
import android.os.Trace; import android.os.Trace;
import android.util.proto.ProtoOutputStream; import android.util.proto.ProtoOutputStream;
import android.view.InsetsSource; import android.view.InsetsSource;
@@ -90,6 +91,16 @@ final class ImeInsetsSourceProvider extends InsetsSourceProvider {
onSourceChanged(); onSourceChanged();
} }
@Override
void updateControlForTarget(@Nullable InsetsControlTarget target, boolean force) {
if (target != null && target.getWindow() != null) {
// ime control target could be a different window.
// Refer WindowState#getImeControlTarget().
target = target.getWindow().getImeControlTarget();
}
super.updateControlForTarget(target, force);
}
private void onSourceChanged() { private void onSourceChanged() {
if (mLastSource.equals(mSource)) { if (mLastSource.equals(mSource)) {
return; return;

View File

@@ -307,11 +307,6 @@ class InsetsSourceProvider {
// to control the window for now. // to control the window for now.
return; return;
} }
if (target != null && target.getWindow() != null) {
// ime control target could be a different window.
// Refer WindowState#getImeControlTarget().
target = target.getWindow().getImeControlTarget();
}
if (mWin != null && mWin.getSurfaceControl() == null) { if (mWin != null && mWin.getSurfaceControl() == null) {
// if window doesn't have a surface, set it null and return. // if window doesn't have a surface, set it null and return.