diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index 6e5c025a1ed14..40dfcda38e6b8 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -7922,6 +7922,12 @@ public class PhoneWindowManager implements WindowManagerPolicy { if (oldRotation == mUpsideDownRotation || newRotation == mUpsideDownRotation) { return false; } + // If the navigation bar can't change sides, then it will + // jump when we change orientations and we don't rotate + // seamlessly. + if (!mNavigationBarCanMove) { + return false; + } int delta = newRotation - oldRotation; if (delta < 0) delta += 4; // Likewise we don't rotate seamlessly for 180 degree rotations