From 924d9b75d6ec4597264a7af3f8be5b5a7d3a3dd2 Mon Sep 17 00:00:00 2001 From: Craig Mautner Date: Sun, 6 May 2012 13:12:04 -0700 Subject: [PATCH] Force BlackSurface to be a black surface. BlackSurface transparency was tracking animation transparency causing background images to peek around the corners. Fixes bug 4998851. Change-Id: I48ac7bf5d0cc560b655c9f12faccda411985cbad --- .../com/android/server/wm/BlackFrame.java | 23 +++++++++---------- .../server/wm/ScreenRotationAnimation.java | 1 - 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/services/java/com/android/server/wm/BlackFrame.java b/services/java/com/android/server/wm/BlackFrame.java index c915932a3648b..27af31328e55b 100644 --- a/services/java/com/android/server/wm/BlackFrame.java +++ b/services/java/com/android/server/wm/BlackFrame.java @@ -42,8 +42,17 @@ public class BlackFrame { this.layer = layer; int w = r-l; int h = b-t; - surface = new Surface(session, 0, "BlackSurface", - -1, w, h, PixelFormat.OPAQUE, Surface.FX_SURFACE_DIM); + if (WindowManagerService.DEBUG_SURFACE_TRACE) { + surface = new WindowStateAnimator.SurfaceTrace(session, 0, "BlackSurface(" + + l + ", " + t + ")", + -1, w, h, PixelFormat.OPAQUE, Surface.FX_SURFACE_DIM); + } else { + surface = new Surface(session, 0, "BlackSurface", + -1, w, h, PixelFormat.OPAQUE, Surface.FX_SURFACE_DIM); + } + surface.setAlpha(1); + surface.setLayer(layer); + surface.show(); if (WindowManagerService.SHOW_TRANSACTIONS || WindowManagerService.SHOW_SURFACE_ALLOC) Slog.i(WindowManagerService.TAG, " BLACK " + surface + ": CREATE layer=" + layer); @@ -58,8 +67,6 @@ public class BlackFrame { surface.setMatrix( mTmpFloats[Matrix.MSCALE_X], mTmpFloats[Matrix.MSKEW_Y], mTmpFloats[Matrix.MSKEW_X], mTmpFloats[Matrix.MSCALE_Y]); - surface.setAlpha(1.0f); - surface.setLayer(layer); if (false) { Slog.i(WindowManagerService.TAG, "Black Surface @ (" + left + "," + top + "): (" + mTmpFloats[Matrix.MTRANS_X] + "," @@ -159,14 +166,6 @@ public class BlackFrame { } } - public void setAlpha(float alpha) { - for (int i=0; i