summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Kenneth Ford <kennethford@google.com> 2024-06-13 16:38:24 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-06-13 16:38:24 +0000
commit6ff19a6b7c19c5fa1ed9b83c585e1388abe7fe46 (patch)
treefeaccf3f8b58eee76f87cb200e38c61b40367512
parent99c67dd3da8f2535e468a5de97d023bd6a5b2b98 (diff)
parent7a0aa26cd3007495967a162b6bcde7c433752218 (diff)
Merge "Do not force desktop mode on a rear positioned display" into main
-rw-r--r--core/java/android/window/flags/windowing_sdk.aconfig11
-rw-r--r--services/core/java/com/android/server/wm/DisplayContent.java14
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();
}
/**