aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardView.java28
1 files changed, 17 insertions, 11 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
index 2d587ada1..38e6d5a1d 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
@@ -109,7 +109,7 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
// Drawing
/** True if the entire keyboard needs to be dimmed. */
- private boolean mNeedsToDimBackground;
+ private boolean mNeedsToDimEntireKeyboard;
/** Whether the keyboard bitmap buffer needs to be redrawn before it's blitted. **/
private boolean mBufferNeedsUpdate;
/** True if all keys should be drawn */
@@ -455,13 +455,16 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
final KeyDrawParams params = mKeyDrawParams;
if (mInvalidateAllKeys || mInvalidatedKeys.isEmpty()) {
- mInvalidatedKeysRect.set(0, 0, getWidth(), getHeight());
+ mInvalidatedKeysRect.set(0, 0, width, height);
canvas.clipRect(mInvalidatedKeysRect, Op.REPLACE);
canvas.drawColor(Color.BLACK, PorterDuff.Mode.CLEAR);
// Draw all keys.
for (final Key key : mKeyboard.mKeys) {
onDrawKey(key, canvas, paint, params);
}
+ if (mNeedsToDimEntireKeyboard) {
+ drawDimRectangle(canvas, mInvalidatedKeysRect, mBackgroundDimAlpha, paint);
+ }
} else {
// Draw invalidated keys.
for (final Key key : mInvalidatedKeys) {
@@ -471,24 +474,20 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
canvas.clipRect(mInvalidatedKeysRect, Op.REPLACE);
canvas.drawColor(Color.BLACK, PorterDuff.Mode.CLEAR);
onDrawKey(key, canvas, paint, params);
+ if (mNeedsToDimEntireKeyboard) {
+ drawDimRectangle(canvas, mInvalidatedKeysRect, mBackgroundDimAlpha, paint);
+ }
}
}
- // Overlay a dark rectangle to dim the entire keyboard
- if (mNeedsToDimBackground) {
- paint.setColor(Color.BLACK);
- paint.setAlpha(mBackgroundDimAlpha);
- canvas.drawRect(0, 0, width, height, paint);
- }
-
mInvalidatedKeys.clear();
mInvalidatedKeysRect.setEmpty();
mInvalidateAllKeys = false;
}
public void dimEntireKeyboard(boolean dimmed) {
- final boolean needsRedrawing = mNeedsToDimBackground != dimmed;
- mNeedsToDimBackground = dimmed;
+ final boolean needsRedrawing = mNeedsToDimEntireKeyboard != dimmed;
+ mNeedsToDimEntireKeyboard = dimmed;
if (needsRedrawing) {
invalidateAllKeys();
}
@@ -809,6 +808,13 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
canvas.translate(-x, -y);
}
+ // Overlay a dark rectangle to dim.
+ private static void drawDimRectangle(Canvas canvas, Rect rect, int alpha, Paint paint) {
+ paint.setColor(Color.BLACK);
+ paint.setAlpha(alpha);
+ canvas.drawRect(rect, paint);
+ }
+
public Paint newDefaultLabelPaint() {
final Paint paint = new Paint();
paint.setAntiAlias(true);