[Patch] Evdev and acceleration
Peter Hutterer
peter.hutterer at who-t.net
Mon Mar 22 23:10:54 PDT 2010
On Tue, Mar 16, 2010 at 04:59:47PM +0100, Simon Thum wrote:
> 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 :)
>
Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
can I have your signed-off though please?
Cheers,
Peter
> From c935b1d8e5a49f22354d96c9863c4b73e9b9acf7 Mon Sep 17 00:00:00 2001
> From: Simon Thum <simon.thum at gmx.de>
> 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
>
More information about the xorg-devel
mailing list