From 134829d911c698704595014ba402516ae9a2f36c Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Thu, 7 Aug 2008 17:34:54 +0930 Subject: 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. --- src/emuWheel.c | 106 ++++++++++++++++----------------------------------------- 1 file changed, 30 insertions(+), 76 deletions(-) (limited to 'src/emuWheel.c') 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; } -- cgit v1.2.3