summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Kazuki Takise <takise@google.com> 2022-10-14 15:55:39 +0900
committer Kazuki Takise <takise@google.com> 2022-11-09 12:08:51 +0000
commit1a721d6022d280e912a372759ef941f0314b3a0f (patch)
treefbdec213c7a464a8a0ec319e30c8ee7068b14636
parent4355d317feebf268b842d922acc414a493105e7c (diff)
Don't always suppres redraw report request in relayout
I6faad4b9adac7334df7caf3d23df59bd3e96bfd9 added an optimization so a newly visible window won't be relayouted several times with shell transitions but this seems to conflict with Ie545465cac0207631ada6dac003340ca80eb2b14 that the relayout won't return syncId to trigger reporting finish draw. Especially when a window size gets changed but visibility doesn't, we seem to rely on the code path of relayout->reportResize. If this code path is suppressed, a new buffer won't get drawn for the change and the transition will time out. Bug: 237743987 Test: Multi-activity PIP works on ARC T Change-Id: Id2b5a335c05f5977a7b72e58470218f075c302f9
-rw-r--r--services/core/java/com/android/server/wm/WindowState.java3
1 files changed, 1 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java
index c161a9b26f59..a2c827c4b34f 100644
--- a/services/core/java/com/android/server/wm/WindowState.java
+++ b/services/core/java/com/android/server/wm/WindowState.java
@@ -6104,8 +6104,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
if (mRedrawForSyncReported) {
return false;
}
- // TODO(b/233286785): Remove mIsWallpaper once WallpaperService handles syncId of relayout.
- if (mInRelayout && !mIsWallpaper) {
+ if (mInRelayout && mPrepareSyncSeqId > 0) {
// The last sync seq id will return to the client, so there is no need to request the
// client to redraw.
return false;