diff options
author | 2024-06-13 16:38:24 +0000 | |
---|---|---|
committer | 2024-06-13 16:38:24 +0000 | |
commit | 6ff19a6b7c19c5fa1ed9b83c585e1388abe7fe46 (patch) | |
tree | feaccf3f8b58eee76f87cb200e38c61b40367512 | |
parent | 99c67dd3da8f2535e468a5de97d023bd6a5b2b98 (diff) | |
parent | 7a0aa26cd3007495967a162b6bcde7c433752218 (diff) |
Merge "Do not force desktop mode on a rear positioned display" into main
-rw-r--r-- | core/java/android/window/flags/windowing_sdk.aconfig | 11 | ||||
-rw-r--r-- | services/core/java/com/android/server/wm/DisplayContent.java | 14 |
2 files changed, 21 insertions, 4 deletions
diff --git a/core/java/android/window/flags/windowing_sdk.aconfig b/core/java/android/window/flags/windowing_sdk.aconfig index 87ede4a3f743..0a4762d91610 100644 --- a/core/java/android/window/flags/windowing_sdk.aconfig +++ b/core/java/android/window/flags/windowing_sdk.aconfig @@ -180,3 +180,14 @@ flag { purpose: PURPOSE_BUGFIX } } + +flag { + namespace: "windowing_sdk" + name: "rear_display_disable_force_desktop_system_decorations" + description: "Block system decorations from being added to a rear display when desktop mode is forced" + bug: "346103150" + is_fixed_read_only: true + metadata { + purpose: PURPOSE_BUGFIX + } +} diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index a3a6b51521f2..87ee5d8f7f13 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -5719,15 +5719,21 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp * @see Display#FLAG_SHOULD_SHOW_SYSTEM_DECORATIONS */ boolean supportsSystemDecorations() { + boolean forceDesktopModeOnDisplay = forceDesktopMode(); + + if (com.android.window.flags.Flags.rearDisplayDisableForceDesktopSystemDecorations()) { + // System decorations should not be forced on a rear display due to security policies. + forceDesktopModeOnDisplay = + forceDesktopModeOnDisplay && ((mDisplay.getFlags() & Display.FLAG_REAR) == 0); + } + return (mWmService.mDisplayWindowSettings.shouldShowSystemDecorsLocked(this) || (mDisplay.getFlags() & FLAG_SHOULD_SHOW_SYSTEM_DECORATIONS) != 0 - || forceDesktopMode()) + || forceDesktopModeOnDisplay) // VR virtual display will be used to run and render 2D app within a VR experience. && mDisplayId != mWmService.mVr2dDisplayId // Do not show system decorations on untrusted virtual display. - && isTrusted() - // No system decoration on rear display. - && (mDisplay.getFlags() & Display.FLAG_REAR) == 0; + && isTrusted(); } /** |