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

Reply via email to