diff options
author | 2012-09-24 20:28:48 -0700 | |
---|---|---|
committer | 2012-09-24 20:28:48 -0700 | |
commit | 9cf7d43c3ea98e5a35a95f8b1b17958d1fb249c6 (patch) | |
tree | 5d856d28a60a8da4a9b8736a305fa887259d2286 /native/jni/src/proximity_info.cpp | |
parent | b49905098d54dffa9b84dc3595e941440c0ab64d (diff) | |
parent | 089c7d43c7a81dc862212c91b14bac7d2294da51 (diff) | |
download | latinime-9cf7d43c3ea98e5a35a95f8b1b17958d1fb249c6.tar.gz latinime-9cf7d43c3ea98e5a35a95f8b1b17958d1fb249c6.tar.xz latinime-9cf7d43c3ea98e5a35a95f8b1b17958d1fb249c6.zip |
am 089c7d43: Merge "Use touch position correction in the geometric input" into jb-mr1-dev
* commit '089c7d43c7a81dc862212c91b14bac7d2294da51':
Use touch position correction in the geometric input
Diffstat (limited to 'native/jni/src/proximity_info.cpp')
-rw-r--r-- | native/jni/src/proximity_info.cpp | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/native/jni/src/proximity_info.cpp b/native/jni/src/proximity_info.cpp index c9f83b62c..d6990325e 100644 --- a/native/jni/src/proximity_info.cpp +++ b/native/jni/src/proximity_info.cpp @@ -134,10 +134,22 @@ static inline float getNormalizedSquaredDistanceFloat(float x1, float y1, float return (SQUARE_FLOAT(deltaX) + SQUARE_FLOAT(deltaY)) / SQUARE_FLOAT(scale); } -float ProximityInfo::getNormalizedSquaredDistanceFromCenterFloat( +float ProximityInfo::getNormalizedSquaredDistanceFromCenterFloatG( const int keyId, const int x, const int y) const { - const float centerX = static_cast<float>(getKeyCenterXOfKeyIdG(keyId)); - const float centerY = static_cast<float>(getKeyCenterYOfKeyIdG(keyId)); + const static float verticalSweetSpotScaleForGeometric = 1.1f; + const bool correctTouchPosition = hasTouchPositionCorrectionData(); + const float centerX = static_cast<float>(correctTouchPosition + ? getSweetSpotCenterXAt(keyId) + : getKeyCenterXOfKeyIdG(keyId)); + const float visualKeyCenterY = static_cast<float>(getKeyCenterYOfKeyIdG(keyId)); + float centerY; + if (correctTouchPosition) { + const float sweetSpotCenterY = static_cast<float>(getSweetSpotCenterYAt(keyId)); + const float gapY = sweetSpotCenterY - visualKeyCenterY; + centerY = visualKeyCenterY + gapY * verticalSweetSpotScaleForGeometric; + } else { + centerY = visualKeyCenterY; + } const float touchX = static_cast<float>(x); const float touchY = static_cast<float>(y); const float keyWidth = static_cast<float>(getMostCommonKeyWidth()); |