summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/wm/WindowOrganizerController.java5
-rw-r--r--services/core/java/com/android/server/wm/WindowState.java3
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();