diff options
| author | Dianne Hackborn <hackbod@google.com> | 2010-11-05 13:08:35 -0700 |
|---|---|---|
| committer | Dianne Hackborn <hackbod@google.com> | 2010-11-05 13:45:10 -0700 |
| commit | ed7bfbf6c87153c3f2f23d6856db4180d4bac429 (patch) | |
| tree | 1d566f941ad814b9409d80cb107e21ceccc35edd | |
| parent | 2332a74c61fb0c5041bff4f0e361364a3378b4c7 (diff) | |
| download | frameworks_base-ed7bfbf6c87153c3f2f23d6856db4180d4bac429.zip frameworks_base-ed7bfbf6c87153c3f2f23d6856db4180d4bac429.tar.gz frameworks_base-ed7bfbf6c87153c3f2f23d6856db4180d4bac429.tar.bz2 | |
Fix issue #3163426: Screen corruption when using the watermark feature
Change-Id: I23f76f04fb52bb272eccbbcc55606c09404c6ca9
| -rw-r--r-- | services/java/com/android/server/WindowManagerService.java | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/services/java/com/android/server/WindowManagerService.java b/services/java/com/android/server/WindowManagerService.java index 817f0b2..90cdb4b 100644 --- a/services/java/com/android/server/WindowManagerService.java +++ b/services/java/com/android/server/WindowManagerService.java @@ -65,6 +65,7 @@ import android.graphics.Canvas; import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.PixelFormat; +import android.graphics.PorterDuff; import android.graphics.Rect; import android.graphics.Region; import android.graphics.Typeface; @@ -10709,7 +10710,7 @@ public class WindowManagerService extends IWindowManager.Stub return val; } - class Watermark { + static class Watermark { final String[] mTokens; final String mText; final Paint mTextPaint; @@ -10725,9 +10726,9 @@ public class WindowManagerService extends IWindowManager.Stub int mLastDH; boolean mDrawNeeded; - Watermark(SurfaceSession session, String[] tokens) { + Watermark(Display display, SurfaceSession session, String[] tokens) { final DisplayMetrics dm = new DisplayMetrics(); - mDisplay.getMetrics(dm); + display.getMetrics(dm); if (false) { Log.i(TAG, "*********************** WATERMARK"); @@ -10821,6 +10822,8 @@ public class WindowManagerService extends IWindowManager.Stub } catch (OutOfResourcesException e) { } if (c != null) { + c.drawColor(0, PorterDuff.Mode.CLEAR); + int deltaX = mDeltaX; int deltaY = mDeltaY; @@ -10863,7 +10866,7 @@ public class WindowManagerService extends IWindowManager.Stub if (line != null) { String[] toks = line.split("%"); if (toks != null && toks.length > 0) { - mWatermark = new Watermark(mFxSession, toks); + mWatermark = new Watermark(mDisplay, mFxSession, toks); } } } catch (FileNotFoundException e) { |
