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

Commit 2c17cd25 authored by Robert Carr's avatar Robert Carr
Browse files

Only set mResizedWhileNotDragResizing for base windows.

Dialogs, etc, may appear to not be drag resizing as they are not base
windows. Still though, when they resize we don't want them to enter
in to this mResizedWhileNotDragResizing mode or we will freeze
surface boundary updates and lose the ability to crop them to the stack.

Bug: 26668339
Change-Id: Id603816cf5f33b281f46c7812779ba29a024f34f
parent a86a6bf7
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_STACK;
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME;
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
import static com.android.server.wm.WindowManagerService.H.RESIZE_TASK;
import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;

import android.app.ActivityManager.StackId;
import android.content.pm.ActivityInfo;
@@ -574,7 +575,16 @@ class Task implements DimLayer.DimLayerUser {

                    // If we are not drag resizing, force recreating of a new surface so updating
                    // the content and positioning that surface will be in sync.
                    if (!win.computeDragResizing()) {
                    //
                    // As we use this flag as a hint to freeze surface boundary updates,
                    // we'd like to only apply this to TYPE_BASE_APPLICATION,
                    // windows of TYPE_APPLICATION like dialogs, could appear
                    // to not be drag resizing while they resize, but we'd
                    // still like to manipulate their frame to update crop, etc...
                    //
                    // Anyway we don't need to synchronize position and content updates for these
                    // windows since they aren't at the base layer and could be moved around anyway.
                    if (!win.computeDragResizing() && win.mAttrs.type == TYPE_BASE_APPLICATION) {
                        win.mResizedWhileNotDragResizing = true;
                    }
                }