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

Commit eef6b4d3 authored by Tiger's avatar Tiger
Browse files

Don't send mSizeCompatScale to client if it is from SizeCompatBounds

If an app doesn't fit the container, we would scale the app down at the
server side for making it fit. The client should layout the window as
usual as if there is no scaling.

Fix: 254187021
Test: 1. Open a non-resizeable app which has a fixed orientation.
      2. Reduce the display size via `wm size`.
      3. See if the app is cropped.
Change-Id: I3ef16def30d4e52da6c4f2acbf17a247cc783774
parent 389d8389
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1883,7 +1883,7 @@ public class WindowManagerService extends IWindowManager.Stub
                // Make this invalid which indicates a null attached frame.
                outAttachedFrame.set(0, 0, -1, -1);
            }
            outSizeCompatScale[0] = win.getSizeCompatScale();
            outSizeCompatScale[0] = win.getSizeCompatScaleForClient();
        }

        Binder.restoreCallingIdentity(origId);
+6 −3
Original line number Diff line number Diff line
@@ -1265,8 +1265,10 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
        mGlobalScale = mInvGlobalScale = mSizeCompatScale = 1f;
    }

    float getSizeCompatScale() {
        return mSizeCompatScale;
    float getSizeCompatScaleForClient() {
        // If the size compat scale is because of the size compat bounds, we only scale down its
        // coordinates at the server side without letting the client know.
        return mToken.hasSizeCompatBounds() ? 1f : mSizeCompatScale;
    }

    /**
@@ -3863,7 +3865,8 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
                outFrames.attachedFrame.scale(mInvGlobalScale);
            }
        }
        outFrames.sizeCompatScale = mSizeCompatScale;

        outFrames.sizeCompatScale = getSizeCompatScaleForClient();

        // Note: in the cases where the window is tied to an activity, we should not send a
        // configuration update when the window has requested to be hidden. Doing so can lead to