diff options
| -rw-r--r-- | core/java/android/window/flags/windowing_frontend.aconfig | 10 | ||||
| -rw-r--r-- | libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java | 9 |
2 files changed, 19 insertions, 0 deletions
diff --git a/core/java/android/window/flags/windowing_frontend.aconfig b/core/java/android/window/flags/windowing_frontend.aconfig index c2e305d72dd0..9f6ea42c6fc4 100644 --- a/core/java/android/window/flags/windowing_frontend.aconfig +++ b/core/java/android/window/flags/windowing_frontend.aconfig @@ -180,6 +180,16 @@ flag { } flag { + name: "app_handle_no_relayout_on_exclusion_change" + namespace: "windowing_frontend" + description: "Remove unnecessary relayouts for app handle when exclusion regions change" + bug: "383672263" + metadata { + purpose: PURPOSE_BUGFIX + } +} + +flag { name: "respect_non_top_visible_fixed_orientation" namespace: "windowing_frontend" description: "If top activity is not opaque, respect the fixed orientation of activity behind it" diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java index 39a989ce7c7f..b179741b1259 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java @@ -423,6 +423,15 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin } @Override + void onExclusionRegionChanged(@NonNull Region exclusionRegion) { + if (Flags.appHandleNoRelayoutOnExclusionChange() && isAppHandle(mWindowDecorViewHolder)) { + // Avoid unnecessary relayouts for app handle. See b/383672263 + return; + } + relayout(mTaskInfo, mHasGlobalFocus, exclusionRegion); + } + + @Override void relayout(ActivityManager.RunningTaskInfo taskInfo, boolean hasGlobalFocus, @NonNull Region displayExclusionRegion) { final SurfaceControl.Transaction t = mSurfaceControlTransactionSupplier.get(); |