Hi, the hack that is pointer acceleration's init parts bit me. Currently, this is done during driver calls into xf86InitValuatorDefaults(..., 0). But since I increased exposure to driver details by fiddling with the feedback class (see 032f97808c65771a07bac748212cf6457a5d1660), I managed to cut off evdev, which initializes the feedback class _after_ the valuators.
Net effect: Evdev devices can't have accel settings tuned using config fragments ATM. X.org 1.7 is unaffected. I attached a small patch which brings evdev in line with others. Of course, the proper fix would be to make pointer accel's initialization sane. But that would require changes to many drivers, and I'm too swamped for that ATM. Since the fix is unintrusive, I propose it as a tempoary solution. And I pledge to fix things later that year :) Cheers, Simon
>From c935b1d8e5a49f22354d96c9863c4b73e9b9acf7 Mon Sep 17 00:00:00 2001 From: Simon Thum <[email protected]> Date: Tue, 16 Mar 2010 16:00:21 +0100 Subject: [PATCH] move feedback initialization up This allows the backend to propery initialize the feedback from options, as it works with most other drivers. This is the hacky equivalent of fixing the initialization of pointer acceleration, which would require changes to most drivers. --- src/evdev.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/evdev.c b/src/evdev.c index 3051462..63927db 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -1299,6 +1299,9 @@ EvdevAddRelClass(DeviceIntPtr device) GetMotionHistorySize(), Relative)) return !Success; + if (!InitPtrFeedbackClassDeviceStruct(device, EvdevPtrCtrlProc)) + return !Success; + for (axis = REL_X; axis <= REL_MAX; axis++) { int axnum = pEvdev->axis_map[axis]; @@ -1315,9 +1318,6 @@ EvdevAddRelClass(DeviceIntPtr device) xfree(atoms); - if (!InitPtrFeedbackClassDeviceStruct(device, EvdevPtrCtrlProc)) - return !Success; - pInfo->flags |= XI86_POINTER_CAPABLE; return Success; -- 1.6.4.4
_______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
