diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/WindowManagerService.java | 6 |
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; } |