diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/WindowOrganizerController.java | 5 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/WindowState.java | 3 |
2 files changed, 7 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/wm/WindowOrganizerController.java b/services/core/java/com/android/server/wm/WindowOrganizerController.java index 160978dadcba..1784e2186aa5 100644 --- a/services/core/java/com/android/server/wm/WindowOrganizerController.java +++ b/services/core/java/com/android/server/wm/WindowOrganizerController.java @@ -19,6 +19,7 @@ package com.android.server.wm; import static android.Manifest.permission.MANAGE_ACTIVITY_STACKS; import static com.android.server.wm.ActivityStackSupervisor.PRESERVE_WINDOWS; +import static com.android.server.wm.ActivityTaskManagerService.LAYOUT_REASON_CONFIG_CHANGED; import static com.android.server.wm.Task.FLAG_FORCE_HIDDEN_FOR_TASK_ORG; import static com.android.server.wm.WindowContainer.POSITION_BOTTOM; import static com.android.server.wm.WindowContainer.POSITION_TOP; @@ -173,6 +174,10 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub f.recycle(); } } + + if ((effects & TRANSACT_EFFECTS_CLIENT_CONFIG) == 0) { + mService.addWindowLayoutReasons(LAYOUT_REASON_CONFIG_CHANGED); + } } finally { mService.continueWindowLayout(); if (syncId >= 0) { diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java index ef690e1db396..905bba230729 100644 --- a/services/core/java/com/android/server/wm/WindowState.java +++ b/services/core/java/com/android/server/wm/WindowState.java @@ -2114,6 +2114,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP void removeIfPossible() { super.removeIfPossible(); removeIfPossible(false /*keepVisibleDeadWindow*/); + finishDrawing(null); } private void removeIfPossible(boolean keepVisibleDeadWindow) { @@ -3454,7 +3455,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP final Rect visibleInsets = mWindowFrames.mLastVisibleInsets; final Rect stableInsets = mWindowFrames.mLastStableInsets; final MergedConfiguration mergedConfiguration = mLastReportedConfiguration; - final boolean reportDraw = mWinAnimator.mDrawState == DRAW_PENDING; + final boolean reportDraw = mWinAnimator.mDrawState == DRAW_PENDING || useBLASTSync(); final boolean forceRelayout = reportOrientation || isDragResizeChanged(); final int displayId = getDisplayId(); final DisplayCutout displayCutout = getWmDisplayCutout().getDisplayCutout(); |