Merge "Only run layout if we didn't have content" into pi-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
8109960175
@@ -400,6 +400,9 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
|
|||||||
|
|
||||||
private MagnificationSpec mMagnificationSpec;
|
private MagnificationSpec mMagnificationSpec;
|
||||||
|
|
||||||
|
/** Caches the value whether told display manager that we have content. */
|
||||||
|
private boolean mLastHasContent;
|
||||||
|
|
||||||
private final Consumer<WindowState> mUpdateWindowsForAnimator = w -> {
|
private final Consumer<WindowState> mUpdateWindowsForAnimator = w -> {
|
||||||
WindowStateAnimator winAnimator = w.mWinAnimator;
|
WindowStateAnimator winAnimator = w.mWinAnimator;
|
||||||
final AppWindowToken atoken = w.mAppToken;
|
final AppWindowToken atoken = w.mAppToken;
|
||||||
@@ -2916,8 +2919,9 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
|
|||||||
forAllWindows(mApplySurfaceChangesTransaction, true /* traverseTopToBottom */);
|
forAllWindows(mApplySurfaceChangesTransaction, true /* traverseTopToBottom */);
|
||||||
prepareSurfaces();
|
prepareSurfaces();
|
||||||
|
|
||||||
|
mLastHasContent = mTmpApplySurfaceChangesTransactionState.displayHasContent;
|
||||||
mService.mDisplayManagerInternal.setDisplayProperties(mDisplayId,
|
mService.mDisplayManagerInternal.setDisplayProperties(mDisplayId,
|
||||||
mTmpApplySurfaceChangesTransactionState.displayHasContent,
|
mLastHasContent,
|
||||||
mTmpApplySurfaceChangesTransactionState.preferredRefreshRate,
|
mTmpApplySurfaceChangesTransactionState.preferredRefreshRate,
|
||||||
mTmpApplySurfaceChangesTransactionState.preferredModeId,
|
mTmpApplySurfaceChangesTransactionState.preferredModeId,
|
||||||
true /* inTraversal, must call performTraversalInTrans... below */);
|
true /* inTraversal, must call performTraversalInTrans... below */);
|
||||||
@@ -4052,4 +4056,11 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
|
|||||||
private boolean canUpdateImeTarget() {
|
private boolean canUpdateImeTarget() {
|
||||||
return mDeferUpdateImeTargetCount == 0;
|
return mDeferUpdateImeTargetCount == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Cached value whether we told display manager that we have content.
|
||||||
|
*/
|
||||||
|
boolean getLastHasContent() {
|
||||||
|
return mLastHasContent;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1185,6 +1185,7 @@ class WindowStateAnimator {
|
|||||||
if (mIsWallpaper) {
|
if (mIsWallpaper) {
|
||||||
w.dispatchWallpaperVisibility(true);
|
w.dispatchWallpaperVisibility(true);
|
||||||
}
|
}
|
||||||
|
if (!w.getDisplayContent().getLastHasContent()) {
|
||||||
// This draw means the difference between unique content and mirroring.
|
// This draw means the difference between unique content and mirroring.
|
||||||
// Run another pass through performLayout to set mHasContent in the
|
// Run another pass through performLayout to set mHasContent in the
|
||||||
// LogicalDisplay.
|
// LogicalDisplay.
|
||||||
@@ -1195,6 +1196,7 @@ class WindowStateAnimator {
|
|||||||
"showSurfaceRobustlyLocked " + w,
|
"showSurfaceRobustlyLocked " + w,
|
||||||
mAnimator.getPendingLayoutChanges(w.getDisplayId()));
|
mAnimator.getPendingLayoutChanges(w.getDisplayId()));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
w.setOrientationChanging(false);
|
w.setOrientationChanging(false);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user