diff options
author | Jeff Brown <jeffbrown@google.com> | 2013-08-07 14:13:37 -0700 |
---|---|---|
committer | Jeff Brown <jeffbrown@google.com> | 2013-08-07 14:33:50 -0700 |
commit | ef981a40aa63069dc115b216ce38d1dd939dc64c (patch) | |
tree | 05c8b9ea8de1ad4d797d397f30e00ab6e031a65a /services/java/com/android/server/display/LogicalDisplay.java | |
parent | 18ec40c44c936fd5146133ccc7446a4cd860b527 (diff) |
Fix propagation of display overscan information.
Fix several problems in the way that the overscan was plumbed in
which could result in information not being delivered to applications.
There was also a violation of certain invariants regarding the
immutability of returned DisplayInfo objects.
Bug: 10213771
Change-Id: I21184a14305e44278b5e81353bf95d511e8517fb
Diffstat (limited to 'services/java/com/android/server/display/LogicalDisplay.java')
-rw-r--r-- | services/java/com/android/server/display/LogicalDisplay.java | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/services/java/com/android/server/display/LogicalDisplay.java b/services/java/com/android/server/display/LogicalDisplay.java index b9839c27c9bd..7e357c0c3a7c 100644 --- a/services/java/com/android/server/display/LogicalDisplay.java +++ b/services/java/com/android/server/display/LogicalDisplay.java @@ -128,32 +128,24 @@ final class LogicalDisplay { * * @param info The logical display information, may be null. */ - public void setDisplayInfoOverrideFromWindowManagerLocked(DisplayInfo info) { + public boolean setDisplayInfoOverrideFromWindowManagerLocked(DisplayInfo info) { if (info != null) { if (mOverrideDisplayInfo == null) { mOverrideDisplayInfo = new DisplayInfo(info); mInfo = null; - } else if (!mOverrideDisplayInfo.equals(info)) { + return true; + } + if (!mOverrideDisplayInfo.equals(info)) { mOverrideDisplayInfo.copyFrom(info); mInfo = null; + return true; } } else if (mOverrideDisplayInfo != null) { mOverrideDisplayInfo = null; mInfo = null; + return true; } - } - - public void setOverscan(int left, int top, int right, int bottom) { - mInfo.overscanLeft = left; - mInfo.overscanTop = top; - mInfo.overscanRight = right; - mInfo.overscanBottom = bottom; - if (mOverrideDisplayInfo != null) { - mOverrideDisplayInfo.overscanLeft = left; - mOverrideDisplayInfo.overscanTop = top; - mOverrideDisplayInfo.overscanRight = right; - mOverrideDisplayInfo.overscanBottom = bottom; - } + return false; } /** |