diff options
| author | Henrik Rydberg <rydberg@bitmath.org> | 2010-09-07 15:54:27 +0200 |
|---|---|---|
| committer | Henrik Rydberg <rydberg@euromail.se> | 2010-09-07 16:08:44 +0200 |
| commit | 61632a31642ecaa7288624b0dc9887c4196cc165 (patch) | |
| tree | 94f340ba3f626e2756f3d605297ccb2677146ef4 | |
| parent | 9daa452e53d2b2f74f943bd0a50d17a311698b4f (diff) | |
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.c | 7 |
1 files changed, 7 insertions, 0 deletions
| @@ -83,6 +83,13 @@ static int read_caps(struct mtdev_caps *cap, int fd) | |||
| 83 | 83 | ||
| 84 | cap->has_mtdata = has_mt_data(cap); | 84 | cap->has_mtdata = has_mt_data(cap); |
| 85 | 85 | ||
| 86 | if (!cap->has_abs[MTDEV_POSITION_X]) | ||
| 87 | getabs(&cap->abs[MTDEV_POSITION_X], ABS_X, fd); | ||
| 88 | if (!cap->has_abs[MTDEV_POSITION_Y]) | ||
| 89 | getabs(&cap->abs[MTDEV_POSITION_Y], ABS_Y, fd); | ||
| 90 | if (!cap->has_abs[MTDEV_PRESSURE]) | ||
| 91 | getabs(&cap->abs[MTDEV_PRESSURE], ABS_PRESSURE, fd); | ||
| 92 | |||
| 86 | if (!cap->has_abs[MTDEV_TRACKING_ID]) { | 93 | if (!cap->has_abs[MTDEV_TRACKING_ID]) { |
| 87 | cap->abs[MTDEV_TRACKING_ID].minimum = MT_ID_MIN; | 94 | cap->abs[MTDEV_TRACKING_ID].minimum = MT_ID_MIN; |
| 88 | cap->abs[MTDEV_TRACKING_ID].maximum = MT_ID_MAX; | 95 | cap->abs[MTDEV_TRACKING_ID].maximum = MT_ID_MAX; |
