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

Commit 69abc194 authored by Jorim Jaggi's avatar Jorim Jaggi
Browse files

Multi-window optimizations #1

- When the window doesn't have a surface, do not add it to
mResizingWindows, so we don't report unnecessary resizes
- computeDragResizing => false when window is not visible, so we
never enter resizing mode even if the window decides to relayout
in the background

Change-Id: I8e6cdef86f1579d128973d4f2f12e87bf9b65524
parent 0a13bfde
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -556,6 +556,9 @@ class AppWindowToken extends WindowToken {
        mFrozenBounds.remove();
        for (int i = windows.size() - 1; i >= 0; i--) {
            final WindowState win = windows.get(i);
            if (!win.mHasSurface) {
                continue;
            }
            win.mLayoutNeeded = true;
            win.setDisplayLayoutNeeded();
            if (!service.mResizingWindows.contains(win)) {
+1 −1
Original line number Diff line number Diff line
@@ -584,7 +584,7 @@ class Task implements DimLayer.DimLayerUser {
            final ArrayList<WindowState> windows = mAppTokens.get(activityNdx).allAppWindows;
            for (int winNdx = windows.size() - 1; winNdx >= 0; --winNdx) {
                final WindowState win = windows.get(winNdx);
                if (!resizingWindows.contains(win)) {
                if (win.mHasSurface && !resizingWindows.contains(win)) {
                    if (DEBUG_RESIZE) Slog.d(TAG, "resizeWindows: Resizing " + win);
                    resizingWindows.add(win);
                }
+1 −1
Original line number Diff line number Diff line
@@ -2152,7 +2152,7 @@ final class WindowState implements WindowManagerPolicy.WindowState {
        // background.
        return (mDisplayContent.mDividerControllerLocked.isResizing()
                        || mAppToken != null && !mAppToken.mFrozenBounds.isEmpty()) &&
                !task.inFreeformWorkspace();
                !task.inFreeformWorkspace() && isVisibleLw();

    }