Loading services/core/java/com/android/server/wm/DisplayContent.java +9 −1 Original line number Diff line number Diff line Loading @@ -4941,11 +4941,19 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo boolean supportsSystemDecorations() { return (mWmService.mDisplayWindowSettings.shouldShowSystemDecorsLocked(this) || (mDisplay.getFlags() & FLAG_SHOULD_SHOW_SYSTEM_DECORATIONS) != 0 || mWmService.mForceDesktopModeOnExternalDisplays) || (mWmService.mForceDesktopModeOnExternalDisplays && !isUntrustedVirtualDisplay())) // VR virtual display will be used to run and render 2D app within a VR experience. && mDisplayId != mWmService.mVr2dDisplayId; } /** * @return {@code true} if the display is non-system created virtual display. */ boolean isUntrustedVirtualDisplay() { return mDisplay.getType() == Display.TYPE_VIRTUAL && mDisplay.getOwnerUid() != Process.SYSTEM_UID; } /** * Re-parent the DisplayContent's top surfaces, {@link #mWindowingLayer} and * {@link #mOverlayLayer} to the specified SurfaceControl. Loading services/core/java/com/android/server/wm/WindowManagerService.java +2 −13 Original line number Diff line number Diff line Loading @@ -35,7 +35,6 @@ import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER; import static android.provider.Settings.Global.DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS; import static android.view.Display.DEFAULT_DISPLAY; import static android.view.Display.INVALID_DISPLAY; import static android.view.Display.TYPE_VIRTUAL; import static android.view.WindowManager.DOCKED_INVALID; import static android.view.WindowManager.LayoutParams.FIRST_APPLICATION_WINDOW; import static android.view.WindowManager.LayoutParams.FIRST_SUB_WINDOW; Loading Loading @@ -164,7 +163,6 @@ import android.os.PowerManager; import android.os.PowerManager.ServiceType; import android.os.PowerManagerInternal; import android.os.PowerSaveState; import android.os.Process; import android.os.RemoteException; import android.os.ResultReceiver; import android.os.ServiceManager; Loading Loading @@ -6925,21 +6923,13 @@ public class WindowManagerService extends IWindowManager.Stub + "not exist: " + displayId); return false; } final Display display = displayContent.getDisplay(); if (isUntrustedVirtualDisplay(display)) { if (displayContent.isUntrustedVirtualDisplay()) { return false; } return displayContent.supportsSystemDecorations(); } } /** * @return {@code true} if the display is non-system created virtual display. */ private static boolean isUntrustedVirtualDisplay(Display display) { return display.getType() == TYPE_VIRTUAL && display.getOwnerUid() != Process.SYSTEM_UID; } @Override public void setShouldShowSystemDecors(int displayId, boolean shouldShow) { if (!checkCallingPermission(INTERNAL_SYSTEM_WINDOW, "setShouldShowSystemDecors()")) { Loading Loading @@ -6973,8 +6963,7 @@ public class WindowManagerService extends IWindowManager.Stub + displayId); return false; } final Display display = displayContent.getDisplay(); if (isUntrustedVirtualDisplay(display)) { if (displayContent.isUntrustedVirtualDisplay()) { return false; } return mDisplayWindowSettings.shouldShowImeLocked(displayContent) Loading Loading
services/core/java/com/android/server/wm/DisplayContent.java +9 −1 Original line number Diff line number Diff line Loading @@ -4941,11 +4941,19 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo boolean supportsSystemDecorations() { return (mWmService.mDisplayWindowSettings.shouldShowSystemDecorsLocked(this) || (mDisplay.getFlags() & FLAG_SHOULD_SHOW_SYSTEM_DECORATIONS) != 0 || mWmService.mForceDesktopModeOnExternalDisplays) || (mWmService.mForceDesktopModeOnExternalDisplays && !isUntrustedVirtualDisplay())) // VR virtual display will be used to run and render 2D app within a VR experience. && mDisplayId != mWmService.mVr2dDisplayId; } /** * @return {@code true} if the display is non-system created virtual display. */ boolean isUntrustedVirtualDisplay() { return mDisplay.getType() == Display.TYPE_VIRTUAL && mDisplay.getOwnerUid() != Process.SYSTEM_UID; } /** * Re-parent the DisplayContent's top surfaces, {@link #mWindowingLayer} and * {@link #mOverlayLayer} to the specified SurfaceControl. Loading
services/core/java/com/android/server/wm/WindowManagerService.java +2 −13 Original line number Diff line number Diff line Loading @@ -35,7 +35,6 @@ import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER; import static android.provider.Settings.Global.DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS; import static android.view.Display.DEFAULT_DISPLAY; import static android.view.Display.INVALID_DISPLAY; import static android.view.Display.TYPE_VIRTUAL; import static android.view.WindowManager.DOCKED_INVALID; import static android.view.WindowManager.LayoutParams.FIRST_APPLICATION_WINDOW; import static android.view.WindowManager.LayoutParams.FIRST_SUB_WINDOW; Loading Loading @@ -164,7 +163,6 @@ import android.os.PowerManager; import android.os.PowerManager.ServiceType; import android.os.PowerManagerInternal; import android.os.PowerSaveState; import android.os.Process; import android.os.RemoteException; import android.os.ResultReceiver; import android.os.ServiceManager; Loading Loading @@ -6925,21 +6923,13 @@ public class WindowManagerService extends IWindowManager.Stub + "not exist: " + displayId); return false; } final Display display = displayContent.getDisplay(); if (isUntrustedVirtualDisplay(display)) { if (displayContent.isUntrustedVirtualDisplay()) { return false; } return displayContent.supportsSystemDecorations(); } } /** * @return {@code true} if the display is non-system created virtual display. */ private static boolean isUntrustedVirtualDisplay(Display display) { return display.getType() == TYPE_VIRTUAL && display.getOwnerUid() != Process.SYSTEM_UID; } @Override public void setShouldShowSystemDecors(int displayId, boolean shouldShow) { if (!checkCallingPermission(INTERNAL_SYSTEM_WINDOW, "setShouldShowSystemDecors()")) { Loading Loading @@ -6973,8 +6963,7 @@ public class WindowManagerService extends IWindowManager.Stub + displayId); return false; } final Display display = displayContent.getDisplay(); if (isUntrustedVirtualDisplay(display)) { if (displayContent.isUntrustedVirtualDisplay()) { return false; } return mDisplayWindowSettings.shouldShowImeLocked(displayContent) Loading