summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorCraig Mautner <cmautner@google.com>2013-10-03 15:38:55 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2013-10-03 15:38:55 -0700
commit71bbf1086db0303ee8e5f8bea6bde68d25fcc57a (patch)
tree39bcd6d08fb0184a0d026672d6a0a5181533675a /services
parentbee8af8207938fb0d29b38d915be1803edc64d69 (diff)
parentb690557c84b33aa04d6fecf3e2c9fb737291a564 (diff)
downloadframeworks_base-71bbf1086db0303ee8e5f8bea6bde68d25fcc57a.zip
frameworks_base-71bbf1086db0303ee8e5f8bea6bde68d25fcc57a.tar.gz
frameworks_base-71bbf1086db0303ee8e5f8bea6bde68d25fcc57a.tar.bz2
am b690557c: am 02fa2332: Merge "Make DimLayer size dependent on stack layout." into klp-dev
* commit 'b690557c84b33aa04d6fecf3e2c9fb737291a564': Make DimLayer size dependent on stack layout.
Diffstat (limited to 'services')
-rw-r--r--services/java/com/android/server/wm/DimLayer.java43
-rw-r--r--services/java/com/android/server/wm/TaskStack.java4
2 files changed, 29 insertions, 18 deletions
diff --git a/services/java/com/android/server/wm/DimLayer.java b/services/java/com/android/server/wm/DimLayer.java
index 39e664f..c189ddd 100644
--- a/services/java/com/android/server/wm/DimLayer.java
+++ b/services/java/com/android/server/wm/DimLayer.java
@@ -48,9 +48,13 @@ public class DimLayer {
/** Time in milliseconds to take to transition from mStartAlpha to mTargetAlpha */
long mDuration;
- DimLayer(WindowManagerService service, DisplayContent displayContent) {
- mDisplayContent = displayContent;
- final int displayId = displayContent.getDisplayId();
+ /** Owning stack */
+ final TaskStack mStack;
+
+ DimLayer(WindowManagerService service, TaskStack stack) {
+ mStack = stack;
+ mDisplayContent = stack.getDisplayContent();
+ final int displayId = mDisplayContent.getDisplayId();
if (DEBUG) Slog.v(TAG, "Ctor: displayId=" + displayId);
SurfaceControl.openTransaction();
try {
@@ -160,22 +164,29 @@ public class DimLayer {
return;
}
- /*
- // Set surface size to screen size.
- final DisplayInfo info = mDisplayContent.getDisplayInfo();
- // Multiply by 1.5 so that rotating a frozen surface that includes this does not expose a
- // corner.
- final int dw = (int) (info.logicalWidth * 1.5);
- final int dh = (int) (info.logicalHeight * 1.5);
- // back off position so 1/4 of Surface is before and 1/4 is after.
- final float xPos = -1 * dw / 6;
- final float yPos = -1 * dh / 6;
- */
+ final int dw, dh;
+ final float xPos, yPos;
+ if (mStack.hasSibling()) {
+ dw = mBounds.width();
+ dh = mBounds.height();
+ xPos = mBounds.left;
+ yPos = mBounds.right;
+ } else {
+ // Set surface size to screen size.
+ final DisplayInfo info = mDisplayContent.getDisplayInfo();
+ // Multiply by 1.5 so that rotating a frozen surface that includes this does not expose a
+ // corner.
+ dw = (int) (info.logicalWidth * 1.5);
+ dh = (int) (info.logicalHeight * 1.5);
+ // back off position so 1/4 of Surface is before and 1/4 is after.
+ xPos = -1 * dw / 6;
+ yPos = -1 * dh / 6;
+ }
if (!mLastBounds.equals(mBounds) || mLayer != layer) {
try {
- mDimSurface.setPosition(mBounds.left, mBounds.top);
- mDimSurface.setSize(mBounds.width(), mBounds.height());
+ mDimSurface.setPosition(xPos, yPos);
+ mDimSurface.setSize(dw, dh);
mDimSurface.setLayer(layer);
} catch (RuntimeException e) {
Slog.w(TAG, "Failure setting size or layer", e);
diff --git a/services/java/com/android/server/wm/TaskStack.java b/services/java/com/android/server/wm/TaskStack.java
index 7bb6734..2347a19 100644
--- a/services/java/com/android/server/wm/TaskStack.java
+++ b/services/java/com/android/server/wm/TaskStack.java
@@ -71,8 +71,8 @@ public class TaskStack {
mStackId = stackId;
mDisplayContent = displayContent;
final int displayId = displayContent.getDisplayId();
- mDimLayer = new DimLayer(service, displayContent);
- mAnimationBackgroundSurface = new DimLayer(service, displayContent);
+ mDimLayer = new DimLayer(service, this);
+ mAnimationBackgroundSurface = new DimLayer(service, this);
}
DisplayContent getDisplayContent() {