diff --git a/services/core/java/com/android/server/wm/WindowStateAnimator.java b/services/core/java/com/android/server/wm/WindowStateAnimator.java index c2ec8c1e4c854..00f4a45ba9c55 100644 --- a/services/core/java/com/android/server/wm/WindowStateAnimator.java +++ b/services/core/java/com/android/server/wm/WindowStateAnimator.java @@ -2076,7 +2076,8 @@ class WindowStateAnimator { if (time > mDeferTransactionTime + PENDING_TRANSACTION_FINISH_WAIT_TIME) { mDeferTransactionTime = -1; mDeferTransactionUntilFrame = -1; - } else { + } else if (mWin.mAttachedWindow != null && + mWin.mAttachedWindow.mWinAnimator.hasSurface()) { mSurfaceController.deferTransactionUntil( mWin.mAttachedWindow.mWinAnimator.mSurfaceController.getHandle(), mDeferTransactionUntilFrame);