summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenrik Rydberg <rydberg@bitmath.org>2010-09-07 15:54:27 +0200
committerHenrik Rydberg <rydberg@euromail.se>2010-09-07 16:08:44 +0200
commit61632a31642ecaa7288624b0dc9887c4196cc165 (patch)
tree94f340ba3f626e2756f3d605297ccb2677146ef4
parent9daa452e53d2b2f74f943bd0a50d17a311698b4f (diff)
downloadmtdev-git-61632a31642ecaa7288624b0dc9887c4196cc165.tar.gz
Fall back to single-touch position and pressure dimensions
In case mtdev is driving a non-MT device, basic dimensions are not set properly. Fall back on ABS_X/Y and ABS_PRESSURE, such that basic pointer operations can be supported through mtdev. Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>
-rw-r--r--src/caps.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/caps.c b/src/caps.c
index d438826..bf578fa 100644
--- a/src/caps.c
+++ b/src/caps.c
@@ -83,6 +83,13 @@ static int read_caps(struct mtdev_caps *cap, int fd)
cap->has_mtdata = has_mt_data(cap);
+ if (!cap->has_abs[MTDEV_POSITION_X])
+ getabs(&cap->abs[MTDEV_POSITION_X], ABS_X, fd);
+ if (!cap->has_abs[MTDEV_POSITION_Y])
+ getabs(&cap->abs[MTDEV_POSITION_Y], ABS_Y, fd);
+ if (!cap->has_abs[MTDEV_PRESSURE])
+ getabs(&cap->abs[MTDEV_PRESSURE], ABS_PRESSURE, fd);
+
if (!cap->has_abs[MTDEV_TRACKING_ID]) {
cap->abs[MTDEV_TRACKING_ID].minimum = MT_ID_MIN;
cap->abs[MTDEV_TRACKING_ID].maximum = MT_ID_MAX;