diff --git a/core/java/android/app/ActivityView.java b/core/java/android/app/ActivityView.java index 5d0143a505f32..7032a2fe21cf0 100644 --- a/core/java/android/app/ActivityView.java +++ b/core/java/android/app/ActivityView.java @@ -27,6 +27,7 @@ import android.os.RemoteException; import android.util.AttributeSet; import android.util.DisplayMetrics; import android.util.Log; +import android.view.IWindowManager; import android.view.InputDevice; import android.view.InputEvent; import android.view.MotionEvent; @@ -308,8 +309,14 @@ public class ActivityView extends ViewGroup { return; } - mInputForwarder = InputManager.getInstance().createInputForwarder( - mVirtualDisplay.getDisplay().getDisplayId()); + final int displayId = mVirtualDisplay.getDisplay().getDisplayId(); + final IWindowManager wm = WindowManagerGlobal.getWindowManagerService(); + try { + wm.dontOverrideDisplayInfo(displayId); + } catch (RemoteException e) { + e.rethrowAsRuntimeException(); + } + mInputForwarder = InputManager.getInstance().createInputForwarder(displayId); mTaskStackListener = new TaskBackgroundChangeListener(); try { mActivityManager.registerTaskStackListener(mTaskStackListener); diff --git a/core/java/android/view/IWindowManager.aidl b/core/java/android/view/IWindowManager.aidl index 613e6d8c6b14a..6486230f8e3a8 100644 --- a/core/java/android/view/IWindowManager.aidl +++ b/core/java/android/view/IWindowManager.aidl @@ -428,4 +428,14 @@ interface IWindowManager * on the next user activity. */ void requestUserActivityNotification(); + + /** + * Notify WindowManager that it should not override the info in DisplayManager for the specified + * display. This can disable letter- or pillar-boxing applied in DisplayManager when the metrics + * of the logical display reported from WindowManager do not correspond to the metrics of the + * physical display it is based on. + * + * @param displayId The id of the display. + */ + void dontOverrideDisplayInfo(int displayId); } diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index c35c05dc72124..e2e1690039135 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -305,6 +305,11 @@ class DisplayContent extends WindowContainer mExitingTokens = new ArrayList<>(); @@ -1177,8 +1182,14 @@ class DisplayContent extends WindowContainer