summaryrefslogtreecommitdiffstats
path: root/services/input/InputReader.cpp
diff options
context:
space:
mode:
authorJeff Brown <jeffbrown@google.com>2011-02-15 19:13:20 -0800
committerJeff Brown <jeffbrown@google.com>2011-02-15 19:14:35 -0800
commitc3451d4a4479b6244bd6d1dadf289a8d44bdcca2 (patch)
tree3dd498f926ebd98eb205d31e028b6f991c5c6451 /services/input/InputReader.cpp
parentcfe8903441fa3fc13c774587fe96df8206d4ba7d (diff)
downloadframeworks_base-c3451d4a4479b6244bd6d1dadf289a8d44bdcca2.zip
frameworks_base-c3451d4a4479b6244bd6d1dadf289a8d44bdcca2.tar.gz
frameworks_base-c3451d4a4479b6244bd6d1dadf289a8d44bdcca2.tar.bz2
Scale major axis when finger is oriented.
Change-Id: I281ec25478b4ceffa6ed5a41cb44a7e81d18d8dc
Diffstat (limited to 'services/input/InputReader.cpp')
-rw-r--r--services/input/InputReader.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/services/input/InputReader.cpp b/services/input/InputReader.cpp
index a4d5f35..05f40ba 100644
--- a/services/input/InputReader.cpp
+++ b/services/input/InputReader.cpp
@@ -2641,9 +2641,11 @@ void TouchInputMapper::dispatchTouch(nsecs_t when, uint32_t policyFlags,
int32_t c2 = signExtendNybble(in.orientation & 0x0f);
if (c1 != 0 || c2 != 0) {
orientation = atan2f(c1, c2) * 0.5f;
- float minorAxisScale = (16.0f - pythag(c1, c2)) / 16.0f;
- toolMinor *= minorAxisScale;
- touchMinor *= minorAxisScale;
+ float scale = 1.0f + pythag(c1, c2) / 16.0f;
+ touchMajor *= scale;
+ touchMinor /= scale;
+ toolMajor *= scale;
+ toolMinor /= scale;
} else {
orientation = 0;
}