summaryrefslogtreecommitdiff
path: root/src/synapticsstr.h
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2013-07-19 11:08:43 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2013-07-19 13:19:06 +1000
commit0fb59b3487d57523a03f078a2061e2ea0cacbc7c (patch)
treeac69c0ea22381c6f18ff822fbd9c757203d813c3 /src/synapticsstr.h
parent96cf04dce19e7c90bc05b8b3b192b5bfb97381d2 (diff)
Disable driver scaling for input ABI 19.2
For absolute devices in relative mode, i.e. touchpads, the server now takes device resolution into account. Doing so means that the driver mustn't scale, so we deactivate those bits in the driver. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'src/synapticsstr.h')
-rw-r--r--src/synapticsstr.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/synapticsstr.h b/src/synapticsstr.h
index 428befa..a9901a2 100644
--- a/src/synapticsstr.h
+++ b/src/synapticsstr.h
@@ -28,6 +28,14 @@
#define LogMessageVerbSigSafe xf86MsgVerb
#endif
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 19
+#if GET_ABI_MINOR(ABI_XINPUT_VERSION) >= 2
+/* as of 19.2, the server takes device resolution into account when scaling
+ relative events from abs device, so we must not scale in synaptics. */
+#define NO_DRIVER_SCALING 1
+#endif
+#endif
+
#ifdef DBG
#undef DBG
#endif
@@ -250,8 +258,10 @@ struct _SynapticsPrivateRec {
int prev_z; /* previous z value, for palm detection */
int prevFingers; /* previous numFingers, for transition detection */
int avg_width; /* weighted average of previous fingerWidth values */
+#ifndef NO_DRIVER_SCALING
double horiz_coeff; /* normalization factor for x coordintes */
double vert_coeff; /* normalization factor for y coordintes */
+#endif
int minx, maxx, miny, maxy; /* min/max dimensions as detected */
int minp, maxp, minw, maxw; /* min/max pressure and finger width as detected */