Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f68ad3ef authored by Riddle Hsu's avatar Riddle Hsu Committed by Automerger Merge Worker
Browse files

Merge "Update IME relative layer if it can be the control target" into main...

Merge "Update IME relative layer if it can be the control target" into main am: 3cc978fc am: 8982fa7f am: 2d908a1d

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



Change-Id: I5ec48fc994263f7b7bb49d9d3cef50a2420d54c7
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 8c24209d 2d908a1d
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -4716,6 +4716,17 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
            scheduleAnimation();

            mWmService.mH.post(() -> InputMethodManagerInternal.get().onImeParentChanged());
        } else if (mImeControlTarget != null && mImeControlTarget == mImeLayeringTarget) {
            // Even if the IME surface parent is not changed, the layer target belonging to the
            // parent may have changes. Then attempt to reassign if the IME control target is
            // possible to be the relative layer.
            final SurfaceControl lastRelativeLayer = mImeWindowsContainer.getLastRelativeLayer();
            if (lastRelativeLayer != mImeLayeringTarget.mSurfaceControl) {
                assignRelativeLayerForIme(getSyncTransaction(), false /* forceUpdate */);
                if (lastRelativeLayer != mImeWindowsContainer.getLastRelativeLayer()) {
                    scheduleAnimation();
                }
            }
        }
    }

+4 −0
Original line number Diff line number Diff line
@@ -2706,6 +2706,10 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
        return mLastLayer;
    }

    SurfaceControl getLastRelativeLayer() {
        return mLastRelativeToLayer;
    }

    protected void setRelativeLayer(Transaction t, SurfaceControl relativeTo, int layer) {
        if (mSurfaceFreezer.hasLeash()) {
            // When the freezer has created animation leash parent for the window, set the layer
+0 −1
Original line number Diff line number Diff line
@@ -448,7 +448,6 @@ public class ZOrderingTests extends WindowTestsBase {
        mDisplayContent.updateImeParent();

        // Ime should on top of the popup IME layering target window.
        mDisplayContent.assignChildLayers(mTransaction);
        assertWindowHigher(mImeWindow, popupImeTargetWin);
    }