summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/wm/ActivityStack.java10
1 files changed, 9 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityStack.java b/services/core/java/com/android/server/wm/ActivityStack.java
index ea2aff220030..0b034b5ee334 100644
--- a/services/core/java/com/android/server/wm/ActivityStack.java
+++ b/services/core/java/com/android/server/wm/ActivityStack.java
@@ -701,6 +701,14 @@ class ActivityStack extends ConfigurationContainer {
*/
void setWindowingMode(int preferredWindowingMode, boolean animate, boolean showRecents,
boolean enteringSplitScreenMode, boolean deferEnsuringVisibility, boolean creating) {
+ mWindowManager.inSurfaceTransaction(() -> setWindowingModeInSurfaceTransaction(
+ preferredWindowingMode, animate, showRecents, enteringSplitScreenMode,
+ deferEnsuringVisibility, creating));
+ }
+
+ private void setWindowingModeInSurfaceTransaction(int preferredWindowingMode, boolean animate,
+ boolean showRecents, boolean enteringSplitScreenMode, boolean deferEnsuringVisibility,
+ boolean creating) {
final int currentMode = getWindowingMode();
final int currentOverrideMode = getRequestedOverrideWindowingMode();
final ActivityDisplay display = getDisplay();
@@ -744,7 +752,7 @@ class ActivityStack extends ConfigurationContainer {
// warning toast about it.
mService.getTaskChangeNotificationController().notifyActivityDismissingDockedStack();
final ActivityStack primarySplitStack = display.getSplitScreenPrimaryStack();
- primarySplitStack.setWindowingMode(WINDOWING_MODE_UNDEFINED,
+ primarySplitStack.setWindowingModeInSurfaceTransaction(WINDOWING_MODE_UNDEFINED,
false /* animate */, false /* showRecents */,
false /* enteringSplitScreenMode */, true /* deferEnsuringVisibility */,
primarySplitStack == this ? creating : false);