From 752223386f6f36306368b7ac4146e579ea7428c1 Mon Sep 17 00:00:00 2001 From: Kriti Dang Date: Thu, 25 Aug 2022 15:20:33 +0200 Subject: [PATCH] Ignore the prefModeId only for PiP windows, rather than all non-focussed windows. Ignoring the pref mode Id for all non-focussed window causes issues in case of secondary displays. This will lead to unncessary mode switches when focus switches. Also, this would ignore the vote of main window on seconsary display if current focus is with primary display. Bug: 243147584 Test: atest DisplayTest#testRefreshRateSwitchOnSecondaryDisplay Change-Id: I760a6e7a568f882361a8d323d27d4e92ee2023ae --- services/core/java/com/android/server/wm/DisplayContent.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index 40417fe6929bc..5086ee8ccd696 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -982,7 +982,9 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp final int preferredModeId = getDisplayPolicy().getRefreshRatePolicy() .getPreferredModeId(w); - if (w.isFocused() && mTmpApplySurfaceChangesTransactionState.preferredModeId == 0 + + if (w.getWindowingMode() != WINDOWING_MODE_PINNED + && mTmpApplySurfaceChangesTransactionState.preferredModeId == 0 && preferredModeId != 0) { mTmpApplySurfaceChangesTransactionState.preferredModeId = preferredModeId; }