summaryrefslogtreecommitdiffstats
path: root/services/java/com/android/server/display/DisplayDevice.java
diff options
context:
space:
mode:
authorJeff Brown <jeffbrown@google.com>2012-09-08 18:05:28 -0700
committerJeff Brown <jeffbrown@google.com>2012-09-08 18:12:57 -0700
commitd728bf514f257670fcb9aa22c6eaf97626072c93 (patch)
treededf4c8771ab1e1b618ea0d75e5f8328b0bfe83a /services/java/com/android/server/display/DisplayDevice.java
parent631938f26dbc89e7e9530bb85d9f37706dba59f3 (diff)
downloadframeworks_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.java23
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.
*/