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;                  } |