diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/WindowState.java | 10 | 
1 files changed, 6 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java index b0945ee34243..608f056dc13c 100644 --- a/services/core/java/com/android/server/wm/WindowState.java +++ b/services/core/java/com/android/server/wm/WindowState.java @@ -3715,6 +3715,12 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP          logPerformShow("performShow on "); +        final int drawState = mWinAnimator.mDrawState; +        if ((drawState == HAS_DRAWN || drawState == READY_TO_SHOW) +                && mAttrs.type != TYPE_APPLICATION_STARTING && mAppToken != null) { +            mAppToken.onFirstWindowDrawn(this, mWinAnimator); +        } +          if (mWinAnimator.mDrawState != READY_TO_SHOW || !isReadyForDisplay()) {              return false;          } @@ -3749,10 +3755,6 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP              }          } -        if (mAttrs.type != TYPE_APPLICATION_STARTING && mAppToken != null) { -            mAppToken.onFirstWindowDrawn(this, mWinAnimator); -        } -          if (mAttrs.type == TYPE_INPUT_METHOD) {              getDisplayContent().mDividerControllerLocked.resetImeHideRequested();          }  |