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

Commit cae02ff4 authored by Ming-Shin Lu's avatar Ming-Shin Lu Committed by Android (Google) Code Review
Browse files

Merge "Calling updateImeParent when the layering target is staled" into sc-dev

parents 891f3034 d44d4852
Loading
Loading
Loading
Loading
+9 −4
Original line number Original line Diff line number Diff line
@@ -3833,7 +3833,7 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
        // 4. Update the IME control target to apply any inset change and animation.
        // 4. Update the IME control target to apply any inset change and animation.
        // 5. Reparent the IME container surface to either the input target app, or the IME window
        // 5. Reparent the IME container surface to either the input target app, or the IME window
        // parent.
        // parent.
        updateImeControlTarget();
        updateImeControlTarget(true /* forceUpdateImeParent */);
    }
    }


    @VisibleForTesting
    @VisibleForTesting
@@ -3965,12 +3965,17 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
    }
    }


    void updateImeControlTarget() {
    void updateImeControlTarget() {
        updateImeControlTarget(false /* forceUpdateImeParent */);
    }

    void updateImeControlTarget(boolean forceUpdateImeParent) {
        InsetsControlTarget prevImeControlTarget = mImeControlTarget;
        InsetsControlTarget prevImeControlTarget = mImeControlTarget;
        mImeControlTarget = computeImeControlTarget();
        mImeControlTarget = computeImeControlTarget();
        mInsetsStateController.onImeControlTargetChanged(mImeControlTarget);
        mInsetsStateController.onImeControlTargetChanged(mImeControlTarget);
        // Update Ime parent when IME insets leash created, which is the best time that default
        // Update Ime parent when IME insets leash created or the new IME layering target might
        // IME visibility has been settled down after IME control target changed.
        // updated from setImeLayeringTarget, which is the best time that default IME visibility
        if (prevImeControlTarget != mImeControlTarget) {
        // has been settled down after IME control target changed.
        if (prevImeControlTarget != mImeControlTarget || forceUpdateImeParent) {
            updateImeParent();
            updateImeParent();
        }
        }