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

Commit 50bf96b8 authored by Chong Zhang's avatar Chong Zhang
Browse files

Crop to stack bounds during animation if docked task is non-resizeable

When a non-resizeable task is docked, it's running in fullscreen size, its
visible area should always be cropped to docked stack size. Otherwise wrong
size might show through during animation.

bug: 26163416
Change-Id: Idcbf4b86ae0976d86a2f91e78ccc2113dd86af62
parent c127d656
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -1182,11 +1182,14 @@ class WindowStateAnimator {
        // We don't apply the stack bounds crop if:
        // 1. The window is currently animating docked mode or in freeform mode, otherwise the
        // animating window will be suddenly (docked) or for whole animation (freeform) cut off.
        // (Note that we still need to apply the crop if the task being docked is non-resizeable,
        // in which case the task is running in fullscreen size but cropped to stack bounds.)
        // 2. The window that is being replaced during animation, because it was living in a
        // different stack. If we suddenly crop it to the new stack bounds, it might get cut off.
        // We don't want it to happen, so we let it ignore the stack bounds until it gets removed.
        // The window that will replace it will abide them.
        if (isAnimating() && (w.mWillReplaceWindow || w.inDockedWorkspace()
        if (isAnimating() && (w.mWillReplaceWindow
                || (w.inDockedWorkspace() && task.isResizeable())
                || w.inFreeformWorkspace())) {
            return;
        }