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

Commit 9e13b1f2 authored by Vladislav Kaznacheev's avatar Vladislav Kaznacheev Committed by android-build-merger
Browse files

Merge "Partial fix for jumping freeform windows" into nyc-dev

am: d5c94d1a

* commit 'd5c94d1a':
  Partial fix for jumping freeform windows

Change-Id: Ifdff3f152787fb6c8739fddf1767d0ce3e4b0e26
parents 4c8c4700 d5c94d1a
Loading
Loading
Loading
Loading
+15 −1
Original line number Diff line number Diff line
@@ -1803,7 +1803,21 @@ public interface WindowManager extends ViewManager {
         */
        public final void setSurfaceInsets(View view, boolean manual, boolean preservePrevious) {
            final int surfaceInset = (int) Math.ceil(view.getZ() * 2);
            surfaceInsets.set(surfaceInset, surfaceInset, surfaceInset, surfaceInset);
            // Partial workaround for b/28318973. Every inset change causes a freeform window
            // to jump a little for a few frames. If we never allow surface insets to decrease,
            // they will stabilize quickly (often from the very beginning, as most windows start
            // as focused).
            // TODO(b/22668382) to fix this properly.
            if (surfaceInset == 0) {
                // OK to have 0 (this is the case for non-freeform windows).
                surfaceInsets.set(0, 0, 0, 0);
            } else {
                surfaceInsets.set(
                        Math.max(surfaceInset, surfaceInsets.left),
                        Math.max(surfaceInset, surfaceInsets.top),
                        Math.max(surfaceInset, surfaceInsets.right),
                        Math.max(surfaceInset, surfaceInsets.bottom));
            }
            hasManualSurfaceInsets = manual;
            preservePreviousSurfaceInsets = preservePrevious;
        }