Fix issue #3163426: Screen corruption when using the watermark feature

Change-Id: I23f76f04fb52bb272eccbbcc55606c09404c6ca9
This commit is contained in:
Dianne Hackborn
2010-11-05 13:08:35 -07:00
parent 2332a74c61
commit ed7bfbf6c8

View File

@@ -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) {