Skip to content
Snippets Groups Projects
Commit ee66e6fa authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka
Browse files

Reset old keyboard state before switching to new keyboard

This change is ported version of I8030202f from Gingerbread.
Bug: 3322158

Change-Id: Idc1ef7f174b50b0478ba53b14427485275e97748
parent 2faf0a17
No related branches found
No related tags found
No related merge requests found
......@@ -48,7 +48,7 @@ public class LatinKeyboard extends Keyboard {
private final Drawable mButtonArrowLeftIcon;
private final Drawable mButtonArrowRightIcon;
private final int mSpaceBarTextShadowColor;
private int mSpaceKeyIndex = -1;
private final int[] mSpaceKeyIndexArray;
private int mSpaceDragStartX;
private int mSpaceDragLastDiff;
private final Context mContext;
......@@ -92,7 +92,8 @@ public class LatinKeyboard extends Keyboard {
mButtonArrowRightIcon = res.getDrawable(R.drawable.sym_keyboard_language_arrows_right);
sSpacebarVerticalCorrection = res.getDimensionPixelOffset(
R.dimen.spacebar_vertical_correction);
mSpaceKeyIndex = indexOf(CODE_SPACE);
// The index of space key is available only after Keyboard constructor has finished.
mSpaceKeyIndexArray = new int[] { indexOf(CODE_SPACE) };
}
/**
......@@ -418,7 +419,7 @@ public class LatinKeyboard extends Keyboard {
@Override
public int[] getNearestKeys(int x, int y) {
if (mCurrentlyInSpace) {
return new int[] { mSpaceKeyIndex };
return mSpaceKeyIndexArray;
} else {
// Avoid dead pixels at edges of the keyboard
return super.getNearestKeys(Math.max(0, Math.min(x, getMinWidth() - 1)),
......
......@@ -62,13 +62,18 @@ public class LatinKeyboardView extends KeyboardView {
}
}
public void setLatinKeyboard(LatinKeyboard k) {
super.setKeyboard(k);
public void setLatinKeyboard(LatinKeyboard newKeyboard) {
final LatinKeyboard oldKeyboard = getLatinKeyboard();
if (oldKeyboard != null) {
// Reset old keyboard state before switching to new keyboard.
oldKeyboard.keyReleased();
}
super.setKeyboard(newKeyboard);
// One-seventh of the keyboard width seems like a reasonable threshold
mJumpThresholdSquare = k.getMinWidth() / 7;
mJumpThresholdSquare = newKeyboard.getMinWidth() / 7;
mJumpThresholdSquare *= mJumpThresholdSquare;
// Assuming there are 4 rows, this is the coordinate of the last row
mLastRowY = (k.getHeight() * 3) / 4;
mLastRowY = (newKeyboard.getHeight() * 3) / 4;
}
public LatinKeyboard getLatinKeyboard() {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment