Correct errant entry in to DRAG_RESIZE_FREEFORM state.
Observing the logic in computeDragResizing(), we see that whenever an AppWindowToken has frozen bounds we will enter the drag resizing state. Furthermore, in setDragResizing() we see that if the docked divider is not resizing, then we set ourselves as freeform resizing. Also observe that AppWindowToken#startRelaunching unconditionally freezes the bounds for tasks not in the freeform stack. This means we are almost always entering the freeform resize state while relaunching. Within computeDragResizing, the StackId check and the MATCH_PARENT check have prevented this from being an issue in too many places, espescially in pinned. Once we are in this state, calculateSurfaceBounds() will force us to 0,0 as it thinks we are using the big surface approach. There's no need to freeze the bounds if we weren't drag resizing at the time that the app is relaunched, and this CL enforces that. Bug: 62430780 Test: Manual repro from bug. To verify no regressions, create app with long delay in onResume (>1s) verify no flickers when releasing the docked divider and triggering a resize. go/wm-smoke Change-Id: I1d9bdfbe815ff48c884f933acd65612429d633ef
Loading
Please register or sign in to comment