diff options
author | Jeff Brown <jeffbrown@google.com> | 2012-09-08 18:05:28 -0700 |
---|---|---|
committer | Jeff Brown <jeffbrown@google.com> | 2012-09-08 18:12:57 -0700 |
commit | d728bf514f257670fcb9aa22c6eaf97626072c93 (patch) | |
tree | dedf4c8771ab1e1b618ea0d75e5f8328b0bfe83a /services/java/com/android/server/display/DisplayDevice.java | |
parent | 631938f26dbc89e7e9530bb85d9f37706dba59f3 (diff) | |
download | frameworks_base-d728bf514f257670fcb9aa22c6eaf97626072c93.zip frameworks_base-d728bf514f257670fcb9aa22c6eaf97626072c93.tar.gz frameworks_base-d728bf514f257670fcb9aa22c6eaf97626072c93.tar.bz2 |
Make display manager tell input system about viewports.
The window manager is no longer responsible for telling the
input system about the display viewport.
Change-Id: I932882bae55decef55f25093bb2a7ebac1620bb1
Diffstat (limited to 'services/java/com/android/server/display/DisplayDevice.java')
-rw-r--r-- | services/java/com/android/server/display/DisplayDevice.java | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/services/java/com/android/server/display/DisplayDevice.java b/services/java/com/android/server/display/DisplayDevice.java index 995c553..8eeefb4 100644 --- a/services/java/com/android/server/display/DisplayDevice.java +++ b/services/java/com/android/server/display/DisplayDevice.java @@ -132,14 +132,17 @@ abstract class DisplayDevice { || mCurrentDisplayRect == null || !mCurrentDisplayRect.equals(displayRect)) { mCurrentOrientation = orientation; + if (mCurrentLayerStackRect == null) { mCurrentLayerStackRect = new Rect(); } mCurrentLayerStackRect.set(layerStackRect); + if (mCurrentDisplayRect == null) { mCurrentDisplayRect = new Rect(); } mCurrentDisplayRect.set(displayRect); + Surface.setDisplayProjection(mDisplayToken, orientation, layerStackRect, displayRect); } @@ -156,6 +159,26 @@ abstract class DisplayDevice { } /** + * Populates the specified viewport object with orientation, + * physical and logical rects based on the display's current projection. + */ + public final void populateViewportLocked(DisplayViewport viewport) { + viewport.orientation = mCurrentOrientation; + + if (mCurrentLayerStackRect != null) { + viewport.logicalFrame.set(mCurrentLayerStackRect); + } else { + viewport.logicalFrame.setEmpty(); + } + + if (mCurrentDisplayRect != null) { + viewport.physicalFrame.set(mCurrentDisplayRect); + } else { + viewport.physicalFrame.setEmpty(); + } + } + + /** * Dumps the local state of the display device. * Does not need to dump the display device info because that is already dumped elsewhere. */ |