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

Commit da74da78 authored by Filip Gruszczynski's avatar Filip Gruszczynski
Browse files

Don't freeze the screen when resizing task or stack.

The freeze stops both the input to come and the drawing, which makes
the resize look like it's lagging. We use the display freezing to
prevent artifacts when using big surface for resizing. However,
freezing the whole display is too aggressive. We need subtler
approach.

Bug: 24575766
Change-Id: I8799e7989e937101129572142dfe6b28a7ed7692
parent d316d3d2
Loading
Loading
Loading
Loading
+0 −5
Original line number Diff line number Diff line
@@ -2448,7 +2448,6 @@ public class WindowManagerService extends IWindowManager.Stub
        boolean configChanged;
        boolean surfaceChanged = false;
        boolean dragResizing = false;
        boolean animating;
        boolean hasStatusBarPermission =
                mContext.checkCallingOrSelfPermission(android.Manifest.permission.STATUS_BAR)
                        == PackageManager.PERMISSION_GRANTED;
@@ -2599,16 +2598,12 @@ public class WindowManagerService extends IWindowManager.Stub

                // If we're starting a drag-resize, we'll be changing the surface size as well as
                // notifying the client to render to with an offset from the surface's top-left.
                // Do a screen freeze, and keep the old surface until the the first frame drawn to
                // the new surface comes back, so that we avoid a flash due to mismatching surface
                // setups on window manager side and client side.
                if (win.isDragResizeChanged()) {
                    win.setDragResizing();
                    if (win.mHasSurface) {
                        winAnimator.mDestroyPendingSurfaceUponRedraw = true;
                        winAnimator.mSurfaceDestroyDeferred = true;
                        winAnimator.destroySurfaceLocked();
                        startFreezingDisplayLocked(false, 0, 0);
                        toBeDisplayed = true;
                    }
                }