summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Riddle Hsu <riddlehsu@google.com> 2022-11-24 16:24:48 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2022-11-24 16:24:48 +0000
commit4d18e2d5582b6e9e33049959561e97ac0af40b51 (patch)
tree341fd5e07646b26fbb22bb4a7c3d02ff12ff31ee
parentfb3ae6329091a62abb161b514aab3b8262e448af (diff)
parent0078150dd5e00b09298967c2b95adf9836a2e1ab (diff)
Merge "Finish sync for relayout a drawn window" into tm-qpr-dev
-rw-r--r--services/core/java/com/android/server/wm/WindowManagerService.java6
1 files changed, 6 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index 9db5170897a8..63344a0e8678 100644
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -2587,6 +2587,12 @@ public class WindowManagerService extends IWindowManager.Stub
&& win.mSyncSeqId > lastSyncSeqId) {
maybeSyncSeqId = win.shouldSyncWithBuffers() ? win.mSyncSeqId : -1;
win.markRedrawForSyncReported();
+ if (win.mSyncState == WindowContainer.SYNC_STATE_WAITING_FOR_DRAW
+ && winAnimator.mDrawState == WindowStateAnimator.HAS_DRAWN
+ && maybeSyncSeqId < 0) {
+ // Do not wait for a drawn window which won't report draw.
+ win.onSyncFinishedDrawing();
+ }
} else {
maybeSyncSeqId = -1;
}