From 54abde575e180f0581d14937eb20ea06d8a4fd1a Mon Sep 17 00:00:00 2001 From: =?utf-8?q?S=C3=B8ren=20Hauberg?= Date: Wed, 1 Oct 2008 11:53:20 +0930 Subject: [PATCH] Allow specification of Min/Max for x/y, overriding the auto-detected values. --- src/evdev.c | 17 +++++++++++++---- 1 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/evdev.c b/src/evdev.c index c5fd7d5..48cf1b0 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -776,10 +776,14 @@ EvdevAddAbsClass(DeviceIntPtr device) return !Success; } - pEvdev->min_x = absinfo_x.minimum; - pEvdev->max_x = absinfo_x.maximum; - pEvdev->min_y = absinfo_y.minimum; - pEvdev->max_y = absinfo_y.maximum; + if (pEvdev->min_x == -1) + pEvdev->min_x = absinfo_x.minimum; + if (pEvdev->max_x == -1) + pEvdev->max_x = absinfo_x.maximum; + if (pEvdev->min_y == -1) + pEvdev->min_y = absinfo_y.minimum; + if (pEvdev->max_y == -1) + pEvdev->max_y = absinfo_y.maximum; if (!InitValuatorClassDeviceStruct(device, 2, #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 3 @@ -1350,6 +1354,11 @@ EvdevPreInit(InputDriverPtr drv, IDevPtr dev, int flags) pEvdev->invert_x = xf86SetBoolOption(pInfo->options, "InvertX", FALSE); pEvdev->invert_y = xf86SetBoolOption(pInfo->options, "InvertY", FALSE); + pEvdev->min_x = xf86SetIntOption(pInfo->options, "MinX", -1); + pEvdev->max_x = xf86SetIntOption(pInfo->options, "MaxX", -1); + pEvdev->min_y = xf86SetIntOption(pInfo->options, "MinY", -1); + pEvdev->max_y = xf86SetIntOption(pInfo->options, "MaxY", -1); + if (EvdevProbe(pInfo)) { close(pInfo->fd); xf86DeleteInput(pInfo, 0); -- 1.5.4.3