[PATCH libinput] Fix normalization functions
Jason Gerecke
killertofu at gmail.com
Wed Oct 8 14:53:21 PDT 2014
We need to *subtract*, not *add* the minimum to determine the
range-effective value. For example: if (min, current, max) is
(100, 100, 1000) then the normalized value would be 0.0, not 0.2.
Signed-off-by: Jason Gerecke <killertofu at gmail.com>
---
This patch should be applied to the 'tablet-support' branch, obviously.
...Re-sending since I messed up the mailinglist address.
src/evdev-tablet.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/evdev-tablet.c b/src/evdev-tablet.c
index a63b734..ff5f737 100644
--- a/src/evdev-tablet.c
+++ b/src/evdev-tablet.c
@@ -106,7 +106,7 @@ tablet_update_tool(struct tablet_dispatch *tablet,
static inline double
normalize_pressure_or_dist(const struct input_absinfo * absinfo) {
double range = absinfo->maximum - absinfo->minimum + 1;
- double value = (absinfo->value + absinfo->minimum) / range;
+ double value = (absinfo->value - absinfo->minimum) / range;
return value;
}
@@ -114,7 +114,7 @@ normalize_pressure_or_dist(const struct input_absinfo * absinfo) {
static inline double
normalize_tilt(const struct input_absinfo * absinfo) {
double range = absinfo->maximum - absinfo->minimum + 1;
- double value = (absinfo->value + absinfo->minimum) / range;
+ double value = (absinfo->value - absinfo->minimum) / range;
/* Map to the (-1, 1) range */
return (value * 2) - 1;
--
2.1.2
More information about the wayland-devel
mailing list