summaryrefslogtreecommitdiff
path: root/hw/xfree86/common/xf86Xinput.c
diff options
context:
space:
mode:
authorSimon Thum <simon.thum@gmx.de>2008-07-23 12:06:34 +0200
committerPeter Hutterer <peter.hutterer@who-t.net>2008-07-28 18:13:19 +0930
commit3209bd21d00b8673d321f70afb65720588ddacb3 (patch)
treef7cea81b953b731c891d0f622abb0e1b667a814b /hw/xfree86/common/xf86Xinput.c
parenta17cb29f5acdfcdeac929d8c6be3600d44d038ef (diff)
xfree86: perform pointer accel scheme selection by name, not number
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'hw/xfree86/common/xf86Xinput.c')
-rw-r--r--hw/xfree86/common/xf86Xinput.c31
1 files changed, 26 insertions, 5 deletions
diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index 9a14a4c67..fbd10e97d 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -174,9 +174,21 @@ ApplyAccelerationSettings(DeviceIntPtr dev){
int scheme;
DeviceVelocityPtr pVel;
LocalDevicePtr local = (LocalDevicePtr)dev->public.devicePrivate;
+ char* schemeStr;
if(dev->valuator){
- scheme = xf86SetIntOption(local->options, "AccelerationScheme", 1);
+ schemeStr = xf86SetStrOption(local->options, "AccelerationScheme", "");
+
+ scheme = dev->valuator->accelScheme.number;
+
+ if(!xf86NameCmp(schemeStr, "predictable"))
+ scheme = PtrAccelPredictable;
+
+ if(!xf86NameCmp(schemeStr, "lightweight"))
+ scheme = PtrAccelLightweight;
+
+ if(!xf86NameCmp(schemeStr, "none"))
+ scheme = PtrAccelNoOp;
/* reinit scheme if needed */
if(dev->valuator->accelScheme.number != scheme){
@@ -184,15 +196,24 @@ ApplyAccelerationSettings(DeviceIntPtr dev){
dev->valuator->accelScheme.AccelCleanupProc(dev);
}
- xf86Msg(X_CONFIG, "%s: (accel) init acceleration scheme %i\n", local->name, scheme);
- InitPointerAccelerationScheme(dev, scheme);
+ if(InitPointerAccelerationScheme(dev, scheme)){
+ xf86Msg(X_CONFIG, "%s: (accel) selected scheme %s/%i\n",
+ local->name, schemeStr, scheme);
+ }else{
+ xf86Msg(X_CONFIG, "%s: (accel) could not init scheme %s\n",
+ local->name, schemeStr);
+ scheme = dev->valuator->accelScheme.number;
+ }
}else{
- xf86Msg(X_CONFIG, "%s: (accel) keeping acceleration scheme %i\n", local->name, scheme);
+ xf86Msg(X_CONFIG, "%s: (accel) keeping acceleration scheme %i\n",
+ local->name, scheme);
}
+ xfree(schemeStr);
+
/* process special configuration */
switch(scheme){
- case 1:
+ case PtrAccelPredictable:
pVel = (DeviceVelocityPtr) dev->valuator->accelScheme.accelData;
ProcessVelocityConfiguration (local->name, local->options,
pVel);