From c3451d4a4479b6244bd6d1dadf289a8d44bdcca2 Mon Sep 17 00:00:00 2001 From: Jeff Brown Date: Tue, 15 Feb 2011 19:13:20 -0800 Subject: [PATCH] Scale major axis when finger is oriented. Change-Id: I281ec25478b4ceffa6ed5a41cb44a7e81d18d8dc --- services/input/InputReader.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/services/input/InputReader.cpp b/services/input/InputReader.cpp index a4d5f35b25174..05f40ba40029c 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; }