diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 30bb2bbd33852..3016fa936a6f8 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -4620,6 +4620,7 @@ public final class ViewRootImpl implements ViewParent, final int displayId = args.argi3; MergedConfiguration mergedConfiguration = (MergedConfiguration) args.arg4; final boolean displayChanged = mDisplay.getDisplayId() != displayId; + boolean configChanged = false; if (!mLastReportedMergedConfiguration.equals(mergedConfiguration)) { // If configuration changed - notify about that and, maybe, @@ -4627,6 +4628,7 @@ public final class ViewRootImpl implements ViewParent, performConfigurationChange(mergedConfiguration, false /* force */, displayChanged ? displayId : INVALID_DISPLAY /* same display */); + configChanged = true; } else if (displayChanged) { // Moved to display without config change - report last applied one. onMovedToDisplay(displayId, mLastConfigurationFromResources); @@ -4657,7 +4659,7 @@ public final class ViewRootImpl implements ViewParent, reportNextDraw(); } - if (mView != null && framesChanged) { + if (mView != null && (framesChanged || configChanged)) { forceLayout(mView); } requestLayout();