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

Commit 035b4234 authored by Hiroki Sato's avatar Hiroki Sato Committed by Android (Google) Code Review
Browse files

Merge "Keep frames when providing insets to freeform windows"

parents 2ae8a569 bc27dc39
Loading
Loading
Loading
Loading
+7 −9
Original line number Diff line number Diff line
@@ -64,6 +64,7 @@ import android.view.InsetsState.InternalInsetsType;
import android.view.InternalInsetsAnimationController;
import android.view.SurfaceControl;
import android.view.SyncRtSurfaceTransactionApplier;
import android.view.WindowInsets;
import android.view.WindowInsets.Type;
import android.view.WindowInsetsAnimation;
import android.view.WindowInsetsAnimation.Bounds;
@@ -398,16 +399,13 @@ class InsetsPolicy {

        if (WindowConfiguration.isFloating(windowingMode)
                || (windowingMode == WINDOWING_MODE_MULTI_WINDOW && isAlwaysOnTop)) {
            InsetsState newState = new InsetsState();

            // Only caption and IME are needed.
            if (state.peekSource(ITYPE_CAPTION_BAR) != null) {
                newState.addSource(state.peekSource(ITYPE_CAPTION_BAR));
            }
            if (windowingMode != WINDOWING_MODE_PINNED && state.peekSource(ITYPE_IME) != null) {
                newState.addSource(state.peekSource(ITYPE_IME));
            // Keep frames, caption, and IME.
            int types = WindowInsets.Type.captionBar();
            if (windowingMode != WINDOWING_MODE_PINNED) {
                types |= WindowInsets.Type.ime();
            }

            InsetsState newState = new InsetsState();
            newState.set(state, types);
            state = newState;
            stateCopied = true;
        }