From 1b1698af41b9038d9f9dbf521737d0baab5a2237 Mon Sep 17 00:00:00 2001 From: "Zephaniah E. Hull" Date: Wed, 18 Oct 2006 04:57:22 -0400 Subject: [PATCH] Pass SetDeviceValuators down to the driver. NOTE: This changes the LocalDeviceRec struct, which breaks input drivers. --- hw/xfree86/common/xf86Xinput.c | 8 +++++++- hw/xfree86/common/xf86Xinput.h | 8 ++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c index 69277203d..411deddab 100644 --- a/hw/xfree86/common/xf86Xinput.c +++ b/hw/xfree86/common/xf86Xinput.c @@ -501,7 +501,13 @@ int SetDeviceValuators (ClientPtr client, DeviceIntPtr dev, int *valuators, int first_valuator, int num_valuators) { - return BadMatch; + LocalDevicePtr local = (LocalDevicePtr) dev->public.devicePrivate; + + if (local->set_device_valuators) + return (*local->set_device_valuators)(local, valuators, first_valuator, + num_valuators); + + return BadMatch; } diff --git a/hw/xfree86/common/xf86Xinput.h b/hw/xfree86/common/xf86Xinput.h index 444b2d488..73dcdb75e 100644 --- a/hw/xfree86/common/xf86Xinput.h +++ b/hw/xfree86/common/xf86Xinput.h @@ -113,7 +113,7 @@ typedef struct _LocalDeviceRec { struct _LocalDeviceRec *next; char * name; int flags; - + Bool (*device_control)(DeviceIntPtr device, int what); void (*read_input)(struct _LocalDeviceRec *local); int (*control_proc)(struct _LocalDeviceRec *local, @@ -128,7 +128,11 @@ typedef struct _LocalDeviceRec { Bool (*reverse_conversion_proc)( struct _LocalDeviceRec *local, int x, int y, int *valuators); - + int (*set_device_valuators) + (struct _LocalDeviceRec *local, + int *valuators, int first_valuator, + int num_valuators); + int fd; Atom atom; DeviceIntPtr dev;