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:
@@ -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 android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.os.Trace;
|
||||
import android.util.proto.ProtoOutputStream;
|
||||
import android.view.InsetsSource;
|
||||
@@ -90,6 +91,16 @@ final class ImeInsetsSourceProvider extends InsetsSourceProvider {
|
||||
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() {
|
||||
if (mLastSource.equals(mSource)) {
|
||||
return;
|
||||
|
||||
@@ -307,11 +307,6 @@ class InsetsSourceProvider {
|
||||
// to control the window for now.
|
||||
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 window doesn't have a surface, set it null and return.
|
||||
|
||||
Reference in New Issue
Block a user