aboutsummaryrefslogtreecommitdiffstats
path: root/native/src/proximity_info.cpp
diff options
context:
space:
mode:
authorJean Chalard <jchalard@google.com>2012-03-23 19:25:10 +0900
committerJean Chalard <jchalard@google.com>2012-03-23 19:34:53 +0900
commit88ec125cfcbb06e84f611dd26097efa9731979b7 (patch)
treebdf67730fb8625a2db95e07e27b217bf8dd20d45 /native/src/proximity_info.cpp
parent2b5b6388d6b16e8644e02e71e6e8810e913ff9f8 (diff)
downloadlatinime-88ec125cfcbb06e84f611dd26097efa9731979b7.tar.gz
latinime-88ec125cfcbb06e84f611dd26097efa9731979b7.tar.xz
latinime-88ec125cfcbb06e84f611dd26097efa9731979b7.zip
Fix a bug with negative coordinates, step 1
This breaks style guidelines but for some reason git diff gets so lost on this re-indent that it's better to do it like this Change-Id: Ie0a603eb0739704894a5adc25f9d527b37bdf151
Diffstat (limited to 'native/src/proximity_info.cpp')
-rw-r--r--native/src/proximity_info.cpp76
1 files changed, 39 insertions, 37 deletions
diff --git a/native/src/proximity_info.cpp b/native/src/proximity_info.cpp
index 2bfb15d8c..2f5f81ccb 100644
--- a/native/src/proximity_info.cpp
+++ b/native/src/proximity_info.cpp
@@ -156,57 +156,59 @@ void ProximityInfo::calculateNearbyKeyCodes(
int insertPos = 0;
inputCodes[insertPos++] = primaryKey;
const int startIndex = getStartIndexFromCoordinates(x, y);
- for (int i = 0; i < MAX_PROXIMITY_CHARS_SIZE; ++i) {
- const int32_t c = mProximityCharsArray[startIndex + i];
- if (c < KEYCODE_SPACE || c == primaryKey) {
- continue;
- }
- const int keyIndex = getKeyIndex(c);
- const bool onKey = isOnKey(keyIndex, x, y);
- const int distance = squaredDistanceToEdge(keyIndex, x, y);
- if (onKey || distance < MOST_COMMON_KEY_WIDTH_SQUARE) {
- inputCodes[insertPos++] = c;
- if (insertPos >= MAX_PROXIMITY_CHARS_SIZE) {
- if (DEBUG_DICT) {
- assert(false);
+
+ for (int i = 0; i < MAX_PROXIMITY_CHARS_SIZE; ++i) {
+ const int32_t c = mProximityCharsArray[startIndex + i];
+ if (c < KEYCODE_SPACE || c == primaryKey) {
+ continue;
+ }
+ const int keyIndex = getKeyIndex(c);
+ const bool onKey = isOnKey(keyIndex, x, y);
+ const int distance = squaredDistanceToEdge(keyIndex, x, y);
+ if (onKey || distance < MOST_COMMON_KEY_WIDTH_SQUARE) {
+ inputCodes[insertPos++] = c;
+ if (insertPos >= MAX_PROXIMITY_CHARS_SIZE) {
+ if (DEBUG_DICT) {
+ assert(false);
+ }
+ return;
}
- return;
}
}
- }
- const int additionalProximitySize =
- AdditionalProximityChars::getAdditionalCharsSize(&mLocaleStr, primaryKey);
- if (additionalProximitySize > 0) {
- inputCodes[insertPos++] = ADDITIONAL_PROXIMITY_CHAR_DELIMITER_CODE;
- if (insertPos >= MAX_PROXIMITY_CHARS_SIZE) {
+ const int additionalProximitySize =
+ AdditionalProximityChars::getAdditionalCharsSize(&mLocaleStr, primaryKey);
+ if (additionalProximitySize > 0) {
+ inputCodes[insertPos++] = ADDITIONAL_PROXIMITY_CHAR_DELIMITER_CODE;
+ if (insertPos >= MAX_PROXIMITY_CHARS_SIZE) {
if (DEBUG_DICT) {
assert(false);
}
return;
}
- const int32_t* additionalProximityChars =
- AdditionalProximityChars::getAdditionalChars(&mLocaleStr, primaryKey);
- for (int j = 0; j < additionalProximitySize; ++j) {
- const int32_t ac = additionalProximityChars[j];
- int k = 0;
- for (; k < insertPos; ++k) {
- if ((int)ac == inputCodes[k]) {
- break;
+ const int32_t* additionalProximityChars =
+ AdditionalProximityChars::getAdditionalChars(&mLocaleStr, primaryKey);
+ for (int j = 0; j < additionalProximitySize; ++j) {
+ const int32_t ac = additionalProximityChars[j];
+ int k = 0;
+ for (; k < insertPos; ++k) {
+ if ((int)ac == inputCodes[k]) {
+ break;
+ }
}
- }
- if (k < insertPos) {
- continue;
- }
- inputCodes[insertPos++] = ac;
- if (insertPos >= MAX_PROXIMITY_CHARS_SIZE) {
- if (DEBUG_DICT) {
- assert(false);
+ if (k < insertPos) {
+ continue;
}
- return;
+ inputCodes[insertPos++] = ac;
+ if (insertPos >= MAX_PROXIMITY_CHARS_SIZE) {
+ if (DEBUG_DICT) {
+ assert(false);
+ }
+ return;
}
}
}
+
// Add a delimiter for the proximity characters
for (int i = insertPos; i < MAX_PROXIMITY_CHARS_SIZE; ++i) {
inputCodes[i] = NOT_A_CODE;