[IL65] Pull up X,Y processing, step 4
This works because getKey{X,Y} is a no-op on Constants.NOT_A_COORDINATE. Bug: 8636060 Change-Id: I2f7dd96b6011f094110f7978f8ff24ef2a6e2585
This commit is contained in:
parent
352286a43b
commit
a91dfff5e5
3 changed files with 13 additions and 11 deletions
|
@ -142,7 +142,11 @@ public class MoreKeysKeyboardView extends KeyboardView implements MoreKeysPanel
|
||||||
if (code == Constants.CODE_OUTPUT_TEXT) {
|
if (code == Constants.CODE_OUTPUT_TEXT) {
|
||||||
mListener.onTextInput(mCurrentKey.getOutputText());
|
mListener.onTextInput(mCurrentKey.getOutputText());
|
||||||
} else if (code != Constants.CODE_UNSPECIFIED) {
|
} else if (code != Constants.CODE_UNSPECIFIED) {
|
||||||
mListener.onCodeInput(code, x, y);
|
if (getKeyboard().hasProximityCharsCorrection(code)) {
|
||||||
|
mListener.onCodeInput(code, x, y);
|
||||||
|
} else {
|
||||||
|
mListener.onCodeInput(code, Constants.NOT_A_COORDINATE, Constants.NOT_A_COORDINATE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -346,7 +346,12 @@ public final class PointerTracker implements PointerTrackerQueue.Element,
|
||||||
if (code == Constants.CODE_OUTPUT_TEXT) {
|
if (code == Constants.CODE_OUTPUT_TEXT) {
|
||||||
sListener.onTextInput(key.getOutputText());
|
sListener.onTextInput(key.getOutputText());
|
||||||
} else if (code != Constants.CODE_UNSPECIFIED) {
|
} else if (code != Constants.CODE_UNSPECIFIED) {
|
||||||
sListener.onCodeInput(code, x, y);
|
if (mKeyboard.hasProximityCharsCorrection(code)) {
|
||||||
|
sListener.onCodeInput(code, x, y);
|
||||||
|
} else {
|
||||||
|
sListener.onCodeInput(code,
|
||||||
|
Constants.NOT_A_COORDINATE, Constants.NOT_A_COORDINATE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1247,21 +1247,14 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
||||||
// Implementation of {@link KeyboardActionListener}.
|
// Implementation of {@link KeyboardActionListener}.
|
||||||
@Override
|
@Override
|
||||||
public void onCodeInput(final int codePoint, final int x, final int y) {
|
public void onCodeInput(final int codePoint, final int x, final int y) {
|
||||||
final int keyX, keyY;
|
|
||||||
final Keyboard keyboard = mKeyboardSwitcher.getKeyboard();
|
|
||||||
final MainKeyboardView mainKeyboardView = mKeyboardSwitcher.getMainKeyboardView();
|
final MainKeyboardView mainKeyboardView = mKeyboardSwitcher.getMainKeyboardView();
|
||||||
// x and y include some padding, but everything down the line (especially native
|
// x and y include some padding, but everything down the line (especially native
|
||||||
// code) needs the coordinates in the keyboard frame.
|
// code) needs the coordinates in the keyboard frame.
|
||||||
// TODO: We should reconsider which coordinate system should be used to represent
|
// TODO: We should reconsider which coordinate system should be used to represent
|
||||||
// keyboard event. Also we should pull this up -- LatinIME has no business doing
|
// keyboard event. Also we should pull this up -- LatinIME has no business doing
|
||||||
// this transformation, it should be done already before calling onCodeInput.
|
// this transformation, it should be done already before calling onCodeInput.
|
||||||
if (keyboard != null && keyboard.hasProximityCharsCorrection(codePoint)) {
|
final int keyX = mainKeyboardView.getKeyX(x);
|
||||||
keyX = mainKeyboardView.getKeyX(x);
|
final int keyY = mainKeyboardView.getKeyY(y);
|
||||||
keyY = mainKeyboardView.getKeyY(y);
|
|
||||||
} else {
|
|
||||||
keyX = Constants.NOT_A_COORDINATE;
|
|
||||||
keyY = Constants.NOT_A_COORDINATE;
|
|
||||||
}
|
|
||||||
mInputLogic.onCodeInput(codePoint, keyX, keyY, mHandler, mKeyboardSwitcher,
|
mInputLogic.onCodeInput(codePoint, keyX, keyY, mHandler, mKeyboardSwitcher,
|
||||||
mSubtypeSwitcher);
|
mSubtypeSwitcher);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue