Don't updateSurfacePosition with invalid window frames
updateSurfacePosition runs pretty frequently (during configuration update). However, the WindowState override relies on mWindowFrames which is calculated during layout. This means that surface positions are frequently calculated with out-of-date mWindowFrames (most commonly when the onConfigurationChange cascade is called). This can easily cause visible glitching based on the timings of SFTransaction applications -- particularly when mixed with syncTransactions since those aren't serialized with layout. This CL prevents WindowState's updateSurfacePosition from running when layout is deferred or when the window is goneForLayout. Bug: 169035082 Test: With new split-screen transitions, launch a non-resizable task while in split-screen and observe that home surface doesn't get repositioned incorrectly. Change-Id: If35fb3560eed83fe1c944a1cb7cbb685f58a3b90
Loading
Please register or sign in to comment