Copy rects such that we don't modify state

Test: PopupWindowTest
Bug: 130553898
Bug: 130231322
Change-Id: I8abe25d054b34f1bf1234e1328b32aefc2020cf6
This commit is contained in:
Jorim Jaggi
2019-04-16 15:38:49 +02:00
parent d6490572e2
commit a72b4cc373

View File

@@ -1726,14 +1726,16 @@ public class DisplayPolicy {
// In case we forced the window to draw behind the navigation bar, restrict df/of to
// DF.RestrictedOverscan to simulate old compat behavior.
final Rect parentDisplayFrame = attached.getDisplayFrameLw();
final Rect parentOverscan = attached.getOverscanFrameLw();
Rect parentDisplayFrame = attached.getDisplayFrameLw();
Rect parentOverscan = attached.getOverscanFrameLw();
final WindowManager.LayoutParams attachedAttrs = attached.mAttrs;
if ((attachedAttrs.privateFlags & PRIVATE_FLAG_FORCE_DRAW_BAR_BACKGROUNDS) != 0
&& (attachedAttrs.flags & FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS) == 0
&& (attachedAttrs.systemUiVisibility
& SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION) == 0) {
parentOverscan = new Rect(parentOverscan);
parentOverscan.intersect(displayFrames.mRestrictedOverscan);
parentDisplayFrame = new Rect(parentDisplayFrame);
parentDisplayFrame.intersect(displayFrames.mRestrictedOverscan);
}