Merge "Force relayout if sync operation is requested explicitly" into sc-dev

This commit is contained in:
TreeHugger Robot
2021-06-03 02:59:00 +00:00
committed by Android (Google) Code Review

View File

@@ -3840,8 +3840,9 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
fillClientWindowFramesAndConfiguration(mClientWindowFrames, mLastReportedConfiguration, fillClientWindowFramesAndConfiguration(mClientWindowFrames, mLastReportedConfiguration,
true /* useLatestConfig */, false /* relayoutVisible */); true /* useLatestConfig */, false /* relayoutVisible */);
final boolean reportDraw = drawPending || useBLASTSync() || !mRedrawForSyncReported; final boolean syncRedraw = shouldSendRedrawForSync();
final boolean forceRelayout = reportOrientation || isDragResizeChanged() || !mRedrawForSyncReported; final boolean reportDraw = syncRedraw || drawPending;
final boolean forceRelayout = syncRedraw || reportOrientation || isDragResizeChanged();
final DisplayContent displayContent = getDisplayContent(); final DisplayContent displayContent = getDisplayContent();
final boolean alwaysConsumeSystemBars = final boolean alwaysConsumeSystemBars =
displayContent.getDisplayPolicy().areSystemBarsForcedShownLw(this); displayContent.getDisplayPolicy().areSystemBarsForcedShownLw(this);
@@ -5939,10 +5940,14 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
* for Windows involved in these Syncs * for Windows involved in these Syncs
*/ */
private boolean shouldSendRedrawForSync() { private boolean shouldSendRedrawForSync() {
if (mRedrawForSyncReported) {
return false;
}
final Task task = getTask(); final Task task = getTask();
if (task != null && task.getMainWindowSizeChangeTransaction() != null) if (task != null && task.getMainWindowSizeChangeTransaction() != null) {
return !mRedrawForSyncReported; return true;
return useBLASTSync() && !mRedrawForSyncReported; }
return useBLASTSync();
} }
void requestRedrawForSync() { void requestRedrawForSync() {