diff options
author | Peter Hutterer <peter.hutterer@redhat.com> | 2008-08-07 17:34:54 +0930 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@redhat.com> | 2008-08-08 16:04:23 +0930 |
commit | 134829d911c698704595014ba402516ae9a2f36c (patch) | |
tree | e1251750fa92bfd21a5e6c88acccc401bb75d00d /src/emuWheel.c | |
parent | Add EVDEV_MAXBUTTONS instead of checking against 32. (diff) | |
download | xf86-input-evdev-134829d911c698704595014ba402516ae9a2f36c.tar.gz xf86-input-evdev-134829d911c698704595014ba402516ae9a2f36c.tar.bz2 xf86-input-evdev-134829d911c698704595014ba402516ae9a2f36c.zip |
Simplify the property handler registration.
Instead of having separate handlers for each property, just handle all of them
in one handler for emuMB, and one handler for emuWheel.
Diffstat (limited to 'src/emuWheel.c')
-rw-r--r-- | src/emuWheel.c | 106 |
1 files changed, 30 insertions, 76 deletions
diff --git a/src/emuWheel.c b/src/emuWheel.c index 70ef41c..3c0b066 100644 --- a/src/emuWheel.c +++ b/src/emuWheel.c @@ -6,6 +6,7 @@ * Copyright 2002 by Paul Elliott * (Ported from xf86-input-mouse, above copyrights taken from there) * Copyright 2008 by Chris Salch +* Copyright © 2008 Red Hat, Inc. * * Permission to use, copy, modify, distribute, and sell this software * and its documentation for any purpose is hereby granted without @@ -42,6 +43,12 @@ #define WHEEL_NOT_CONFIGURED 0 +static const char *propname_wheel_emu = "Wheel Emulation"; +static const char *propname_wheel_xmap = "Wheel Emulation X Axis"; +static const char *propname_wheel_ymap = "Wheel Emulation Y Axis"; +static const char *propname_wheel_inertia = "Wheel Emulation Inertia"; +static const char *propname_wheel_button = "Wheel Emulation Button"; + static Atom prop_wheel_emu; static Atom prop_wheel_xmap; static Atom prop_wheel_ymap; @@ -295,8 +302,8 @@ EvdevWheelEmuPreInit(InputInfoPtr pInfo) } #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 3 -Atom -EvdevWheelEmuInitProperty(DeviceIntPtr dev, char* name) +void +EvdevWheelEmuInitProperty(DeviceIntPtr dev) { InputInfoPtr pInfo = dev->public.devicePrivate; EvdevPtr pEvdev = pInfo->private; @@ -304,132 +311,79 @@ EvdevWheelEmuInitProperty(DeviceIntPtr dev, char* name) INT32 valid_vals[] = { TRUE, FALSE}; if (!dev->button) /* don't init prop for keyboards */ - return 0; + return; - prop_wheel_emu = MakeAtom(name, strlen(name), TRUE); + prop_wheel_emu = MakeAtom((char*)propname_wheel_emu, strlen(propname_wheel_emu), TRUE); rc = XIChangeDeviceProperty(dev, prop_wheel_emu, XA_INTEGER, 8, PropModeReplace, 1, &pEvdev->emulateWheel.enabled, FALSE, FALSE, FALSE); if (rc != Success) - return 0; + return; rc = XIConfigureDeviceProperty(dev, prop_wheel_emu, FALSE, FALSE, FALSE, 2, valid_vals); if (rc != Success) - return 0; - return prop_wheel_emu; -} - -Atom -EvdevWheelEmuInitPropertyXMap(DeviceIntPtr dev, char* name) -{ - InputInfoPtr pInfo = dev->public.devicePrivate; - EvdevPtr pEvdev = pInfo->private; - int rc = TRUE; - int vals[2]; - - if (!dev->button) /* don't init prop for keyboards */ - return 0; + return; - vals[0] = pEvdev->emulateWheel.X.up_button; - vals[1] = pEvdev->emulateWheel.X.down_button; + valid_vals[0] = pEvdev->emulateWheel.X.up_button; + valid_vals[1] = pEvdev->emulateWheel.X.down_button; - prop_wheel_xmap = MakeAtom(name, strlen(name), TRUE); + prop_wheel_xmap = MakeAtom((char*)propname_wheel_xmap, strlen(propname_wheel_xmap), TRUE); rc = XIChangeDeviceProperty(dev, prop_wheel_xmap, XA_INTEGER, 8, - PropModeReplace, 2, vals, + PropModeReplace, 2, valid_vals, FALSE, FALSE, FALSE); if (rc != Success) - return 0; + return; rc = XIConfigureDeviceProperty(dev, prop_wheel_xmap, FALSE, FALSE, FALSE, 0, NULL); if (rc != Success) - return 0; - return prop_wheel_xmap; -} - -Atom -EvdevWheelEmuInitPropertyYMap(DeviceIntPtr dev, char* name) -{ - InputInfoPtr pInfo = dev->public.devicePrivate; - EvdevPtr pEvdev = pInfo->private; - int rc = TRUE; - int vals[2]; - - if (!dev->button) /* don't init prop for keyboards */ - return 0; + return; - vals[0] = pEvdev->emulateWheel.Y.up_button; - vals[1] = pEvdev->emulateWheel.Y.down_button; + valid_vals[0] = pEvdev->emulateWheel.Y.up_button; + valid_vals[1] = pEvdev->emulateWheel.Y.down_button; - prop_wheel_ymap = MakeAtom(name, strlen(name), TRUE); + prop_wheel_ymap = MakeAtom((char*)propname_wheel_ymap, strlen(propname_wheel_ymap), TRUE); rc = XIChangeDeviceProperty(dev, prop_wheel_ymap, XA_INTEGER, 8, - PropModeReplace, 2, vals, + PropModeReplace, 2, valid_vals, FALSE, FALSE, FALSE); if (rc != Success) - return 0; + return; rc = XIConfigureDeviceProperty(dev, prop_wheel_ymap, FALSE, FALSE, FALSE, 0, NULL); - if (rc != Success) - return 0; - return prop_wheel_ymap; -} - -Atom -EvdevWheelEmuInitPropertyInertia(DeviceIntPtr dev, char* name) -{ - InputInfoPtr pInfo = dev->public.devicePrivate; - EvdevPtr pEvdev = pInfo->private; - int rc = TRUE; - - if (!dev->button) /* don't init prop for keyboards */ - return 0; - prop_wheel_inertia = MakeAtom(name, strlen(name), TRUE); + prop_wheel_inertia = MakeAtom((char*)propname_wheel_inertia, strlen(propname_wheel_inertia), TRUE); rc = XIChangeDeviceProperty(dev, prop_wheel_inertia, XA_INTEGER, 16, PropModeReplace, 1, &pEvdev->emulateWheel.inertia, FALSE, FALSE, FALSE); if (rc != Success) - return 0; + return; rc = XIConfigureDeviceProperty(dev, prop_wheel_inertia, FALSE, FALSE, FALSE, 0, NULL); if (rc != Success) - return 0; - return prop_wheel_inertia; -} - -Atom -EvdevWheelEmuInitPropertyButton(DeviceIntPtr dev, char* name) -{ - InputInfoPtr pInfo = dev->public.devicePrivate; - EvdevPtr pEvdev = pInfo->private; - int rc = TRUE; - - if (!dev->button) /* don't init prop for keyboards */ - return 0; + return; - prop_wheel_button = MakeAtom(name, strlen(name), TRUE); + prop_wheel_button = MakeAtom((char*)propname_wheel_button, strlen(propname_wheel_button), TRUE); rc = XIChangeDeviceProperty(dev, prop_wheel_button, XA_INTEGER, 8, PropModeReplace, 1, &pEvdev->emulateWheel.button, FALSE, FALSE, FALSE); if (rc != Success) - return 0; + return; rc = XIConfigureDeviceProperty(dev, prop_wheel_button, FALSE, FALSE, FALSE, 0, NULL); if (rc != Success) - return 0; - return prop_wheel_button; + return; } |