chiark / gitweb /
Sensitivity: Handle sensitivities < 1.0 without rounding errors
[xf86-input-mtrack.git] / src / mconfig.c
index ca2970130d0edde754922a63c17e63f417451e44..eeaae53854ecb4394cfad0e0272ef21b122fb130 100644 (file)
 
 void mconfig_set_sensitivity(struct MConfig *cfg, double sensitivity)
 {
-       cfg->sensitivity_val = sensitivity;
+       if (sensitivity >= 1.0) {
+               cfg->sensitivity_big = sensitivity;
+               cfg->sensitivity_smalldiv = 1.0;
+       } else {
+               cfg->sensitivity_big = 1.0;
+               cfg->sensitivity_smalldiv = 1.0 / sensitivity;
+       }
 }
 
 double mconfig_get_sensitivity(const struct MConfig * cfg)
 {
-       return cfg->sensitivity_val;
+       return cfg->sensitivity_big / cfg->sensitivity_smalldiv;
 }
 
 void mconfig_defaults(struct MConfig* cfg)