summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Woodhouse <dwmw2@infradead.org>2009-12-01 00:14:54 +0000
committerPeter Hutterer <peter.hutterer@who-t.net>2009-12-01 14:14:17 +1000
commit7b285a802b8ccddd1edcf40ab345c4a96bcdf43c (patch)
tree52daa680ce0924f67ac6fabd2a7ecd429eea9bb1
parentf187badb71554a73bf9ca30ce75c9d166e688f03 (diff)
Report initial calibration parameters.
Where an initial calibration is provided through the Calibration option to the driver, it wasn't being exposed in the 'Evdev Axis Calibration' property. Remedy that... Signed-off-by: David Woodhouse <David.Woodhouse@intel.com> Acked-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r--src/evdev.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/evdev.c b/src/evdev.c
index f4b2b2e..afa9bc5 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -2413,8 +2413,22 @@ EvdevInitProperty(DeviceIntPtr dev)
prop_calibration = MakeAtom(EVDEV_PROP_CALIBRATION,
strlen(EVDEV_PROP_CALIBRATION), TRUE);
- rc = XIChangeDeviceProperty(dev, prop_calibration, XA_INTEGER, 32,
- PropModeReplace, 0, NULL, FALSE);
+ if (pEvdev->flags & EVDEV_CALIBRATED) {
+ int calibration[4];
+
+ calibration[0] = pEvdev->calibration.min_x;
+ calibration[1] = pEvdev->calibration.max_x;
+ calibration[2] = pEvdev->calibration.min_y;
+ calibration[3] = pEvdev->calibration.max_y;
+
+ rc = XIChangeDeviceProperty(dev, prop_calibration, XA_INTEGER,
+ 32, PropModeReplace, 4, calibration,
+ FALSE);
+ } else {
+ rc = XIChangeDeviceProperty(dev, prop_calibration, XA_INTEGER,
+ 32, PropModeReplace, 0, NULL,
+ FALSE);
+ }
if (rc != Success)
return;