diff options
author | Craig Mautner <cmautner@google.com> | 2013-10-03 15:38:55 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2013-10-03 15:38:55 -0700 |
commit | 71bbf1086db0303ee8e5f8bea6bde68d25fcc57a (patch) | |
tree | 39bcd6d08fb0184a0d026672d6a0a5181533675a /services | |
parent | bee8af8207938fb0d29b38d915be1803edc64d69 (diff) | |
parent | b690557c84b33aa04d6fecf3e2c9fb737291a564 (diff) | |
download | frameworks_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.java | 43 | ||||
-rw-r--r-- | services/java/com/android/server/wm/TaskStack.java | 4 |
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() { |