am bab9687e: Merge "Make the min layer go down through all windows" into jb-mr2-dev

* commit 'bab9687e6473072d6ff4f7ea5a7b21bcfbf95744':
  Make the min layer go down through all windows
This commit is contained in:
Craig Mautner
2013-04-05 10:31:35 -07:00
committed by Android Git Automerger

View File

@ -5365,6 +5365,9 @@ public class WindowManagerService extends IWindowManager.Stub
if (maxLayer < winAnim.mSurfaceLayer) { if (maxLayer < winAnim.mSurfaceLayer) {
maxLayer = winAnim.mSurfaceLayer; maxLayer = winAnim.mSurfaceLayer;
} }
if (minLayer > winAnim.mSurfaceLayer) {
minLayer = winAnim.mSurfaceLayer;
}
// Don't include wallpaper in bounds calculation // Don't include wallpaper in bounds calculation
if (!ws.mIsWallpaper) { if (!ws.mIsWallpaper) {
@ -5377,17 +5380,14 @@ public class WindowManagerService extends IWindowManager.Stub
frame.union(left, top, right, bottom); frame.union(left, top, right, bottom);
} }
if (ws.mAppToken != null && ws.mAppToken.token == appToken) { if (ws.mAppToken != null && ws.mAppToken.token == appToken &&
if (minLayer > ws.mWinAnimator.mSurfaceLayer) { ws.isDisplayedLw()) {
minLayer = ws.mWinAnimator.mSurfaceLayer; screenshotReady = true;
} }
if (ws.isDisplayedLw()) {
screenshotReady = true; if (fullscreen) {
} // No point in continuing down through windows.
if (fullscreen) { break;
// No point in continuing down through windows.
break;
}
} }
} }
@ -5461,14 +5461,12 @@ public class WindowManagerService extends IWindowManager.Stub
rawss = SurfaceControl.screenshot(dw, dh, minLayer, maxLayer); rawss = SurfaceControl.screenshot(dw, dh, minLayer, maxLayer);
} }
} while (!screenshotReady && retryCount <= MAX_SCREENSHOT_RETRIES); } while (!screenshotReady && retryCount <= MAX_SCREENSHOT_RETRIES);
if (DEBUG_SCREENSHOT && retryCount > MAX_SCREENSHOT_RETRIES) { if (retryCount > MAX_SCREENSHOT_RETRIES) Slog.i(TAG, "Screenshot max retries " +
Slog.i(TAG, "Screenshot max retries " + retryCount + " of " + appToken + " appWin=" retryCount + " of " + appToken + " appWin=" + (appWin == null ?
+ (appWin == null ? "null" : (appWin + " drawState=" "null" : (appWin + " drawState=" + appWin.mWinAnimator.mDrawState)));
+ appWin.mWinAnimator.mDrawState)));
}
if (rawss == null) { if (rawss == null) {
Slog.w(TAG, "Failure taking screenshot for (" + dw + "x" + dh Slog.w(TAG, "Screenshot failure taking screenshot for (" + dw + "x" + dh
+ ") to layer " + maxLayer); + ") to layer " + maxLayer);
return null; return null;
} }
@ -5481,7 +5479,7 @@ public class WindowManagerService extends IWindowManager.Stub
canvas.drawBitmap(rawss, matrix, null); canvas.drawBitmap(rawss, matrix, null);
canvas.setBitmap(null); canvas.setBitmap(null);
if (DEBUG_SCREENSHOT) { if (true || DEBUG_SCREENSHOT) {
// TEST IF IT's ALL BLACK // TEST IF IT's ALL BLACK
int[] buffer = new int[bm.getWidth() * bm.getHeight()]; int[] buffer = new int[bm.getWidth() * bm.getHeight()];
bm.getPixels(buffer, 0, bm.getWidth(), 0, 0, bm.getWidth(), bm.getHeight()); bm.getPixels(buffer, 0, bm.getWidth(), 0, 0, bm.getWidth(), bm.getHeight());
@ -5494,7 +5492,8 @@ public class WindowManagerService extends IWindowManager.Stub
} }
if (allBlack) { if (allBlack) {
Slog.i(TAG, "Screenshot " + appWin + " was all black! mSurfaceLayer=" + Slog.i(TAG, "Screenshot " + appWin + " was all black! mSurfaceLayer=" +
(appWin != null ? appWin.mWinAnimator.mSurfaceLayer : "null")); (appWin != null ? appWin.mWinAnimator.mSurfaceLayer : "null") +
" minLayer=" + minLayer + " maxLayer=" + maxLayer);
} }
} }