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 <[email protected]>
Acked-by: Peter Hutterer <[email protected]>

diff --git a/src/evdev.c b/src/evdev.c
index 81a0bd5..6bc80ef 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -2412,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;
 

-- 
David Woodhouse                            Open Source Technology Centre
[email protected]                              Intel Corporation

_______________________________________________
xorg mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/xorg

Reply via email to