* commit 'bb80833f665182aa30645f957d9f00163aad3b69': Fix stale key drawing
This commit is contained in:
commit
28626f9237
2 changed files with 17 additions and 0 deletions
|
@ -197,6 +197,20 @@ public class Keyboard {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean hasKey(Key aKey) {
|
||||||
|
if (mKeyCache.containsKey(aKey)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (final Key key : mKeys) {
|
||||||
|
if (key == aKey) {
|
||||||
|
mKeyCache.put(key.mCode, key);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
public static boolean isLetterCode(int code) {
|
public static boolean isLetterCode(int code) {
|
||||||
return code >= MINIMUM_LETTER_CODE;
|
return code >= MINIMUM_LETTER_CODE;
|
||||||
}
|
}
|
||||||
|
|
|
@ -487,6 +487,9 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
|
||||||
} else {
|
} else {
|
||||||
// Draw invalidated keys.
|
// Draw invalidated keys.
|
||||||
for (final Key key : mInvalidatedKeys) {
|
for (final Key key : mInvalidatedKeys) {
|
||||||
|
if (!mKeyboard.hasKey(key)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
final int x = key.mX + getPaddingLeft();
|
final int x = key.mX + getPaddingLeft();
|
||||||
final int y = key.mY + getPaddingTop();
|
final int y = key.mY + getPaddingTop();
|
||||||
mInvalidatedKeysRect.set(x, y, x + key.mWidth, y + key.mHeight);
|
mInvalidatedKeysRect.set(x, y, x + key.mWidth, y + key.mHeight);
|
||||||
|
|
Loading…
Reference in a new issue