aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZephaniah E. Hull <warp@agamemnon.b5>2007-06-11 09:08:24 -0400
committerZephaniah E. Hull <warp@agamemnon.b5>2007-06-11 09:08:24 -0400
commit2d2c4804f925505e737c2c812687f47840218c93 (patch)
treee22e30328fa242c6a0745ae7a1b96932871c3730
parentHandle default remapping around existing button targets better. (diff)
downloadxf86-input-evdev-2d2c4804f925505e737c2c812687f47840218c93.tar.gz
xf86-input-evdev-2d2c4804f925505e737c2c812687f47840218c93.tar.bz2
xf86-input-evdev-2d2c4804f925505e737c2c812687f47840218c93.zip
evdev.c:
Set and use the X mode control, letting XInput see it properly. Kill some cruft. evdev.h: Set and use the X mode control, letting XInput see it properly. evdev_axes.c: Set and use the X mode control, letting XInput see it properly. evdev_key.c: Remove some cruft, the bell func can be NULL now, so do so. Don't bother looking for keys above 0xF7 until we can actually do something with them.
-rw-r--r--src/evdev.c12
-rw-r--r--src/evdev.h1
-rw-r--r--src/evdev_axes.c8
-rw-r--r--src/evdev_key.c26
4 files changed, 7 insertions, 40 deletions
diff --git a/src/evdev.c b/src/evdev.c
index 881f079..868bbff 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -367,9 +367,7 @@ EvdevSwitchMode (ClientPtr client, DeviceIntPtr device, int mode)
case Absolute:
case Relative:
xf86Msg(X_INFO, "%s: Switching mode to %d.\n", pInfo->name, mode);
- if (state->abs)
- state->mode = mode;
- else
+ if (!state->abs)
return !Success;
break;
default:
@@ -379,11 +377,6 @@ EvdevSwitchMode (ClientPtr client, DeviceIntPtr device, int mode)
return Success;
}
-/*
-static Bool
-EvdevNew(evdevDriverPtr driver, evdevDevicePtr device)
-*/
-
InputInfoPtr
EvdevPreInit(InputDriverPtr drv, IDevPtr dev, int flags)
{
@@ -407,9 +400,6 @@ EvdevPreInit(InputDriverPtr drv, IDevPtr dev, int flags)
pInfo->device_control = EvdevProc;
pInfo->read_input = EvdevReadInput;
pInfo->switch_mode = EvdevSwitchMode;
-#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) == 0
- pInfo->motion_history_proc = xf86GetMotionEvents;
-#endif
pInfo->conf_idev = dev;
pInfo->private = pEvdev;
diff --git a/src/evdev.h b/src/evdev.h
index d14bba3..9d84843 100644
--- a/src/evdev.h
+++ b/src/evdev.h
@@ -181,7 +181,6 @@ typedef struct {
typedef struct _evdevState {
Bool can_grab;
Bool sync;
- int mode; /* Either Absolute or Relative. */
evdevBtnPtr btn;
evdevAbsPtr abs;
diff --git a/src/evdev_axes.c b/src/evdev_axes.c
index 4abab46..60bfde7 100644
--- a/src/evdev_axes.c
+++ b/src/evdev_axes.c
@@ -581,7 +581,7 @@ EvdevAxesAbsProcess (InputInfoPtr pInfo, struct input_event *ev)
if (v_flags & EV_ABS_V_M_REL)
is_rel = 1;
- else if ((v_flags & EV_ABS_V_M_AUTO) && state->mode == Relative)
+ else if ((v_flags & EV_ABS_V_M_AUTO) && pInfo->dev->valuator->mode == Relative)
is_rel = 1;
else
is_rel = 0;
@@ -728,13 +728,13 @@ EvdevAxisAbsNew1(InputInfoPtr pInfo)
s = xf86SetStrOption(pInfo->options, "Mode", "Absolute");
if (!strcasecmp(s, "Absolute")) {
- state->mode = Absolute;
+ pInfo->dev->valuator->mode = Absolute;
xf86Msg(X_CONFIG, "%s: Configuring in %s mode.\n", pInfo->name, s);
} else if (!strcasecmp(s, "Relative")) {
- state->mode = Relative;
+ pInfo->dev->valuator->mode = Relative;
xf86Msg(X_CONFIG, "%s: Configuring in %s mode.\n", pInfo->name, s);
} else {
- state->mode = Absolute;
+ pInfo->dev->valuator->mode = Absolute;
xf86Msg(X_CONFIG, "%s: Unknown Mode: %s.\n", pInfo->name, s);
}
diff --git a/src/evdev_key.c b/src/evdev_key.c
index b0864a3..d278988 100644
--- a/src/evdev_key.c
+++ b/src/evdev_key.c
@@ -331,22 +331,6 @@ static KeySym map[] = {
/* 0xf7 */ NoSymbol, NoSymbol,
};
-/*
- * FIXME: We have no way of ringing the bell ourselves.
- *
- * And recent versions of X don't have the system call.
- * Who cares.
- */
-static void
-EvdevKbdBell (int percent, DeviceIntPtr device, pointer arg, int unused)
-{
-#if 0
- KeybdCtrl *ctrl = arg;
-
- xf86OSRingBell(percent, ctrl->bell_pitch, ctrl->bell_duration);
-#endif
-}
-
static void
EvdevKbdCtrl(DeviceIntPtr device, KeybdCtrl *ctrl)
{
@@ -440,7 +424,7 @@ EvdevKeyInit (DeviceIntPtr device)
state->key->xkb_options);
XkbInitKeyboardDeviceStruct (device, &state->key->xkbnames, &keySyms, modMap,
- EvdevKbdBell, EvdevKbdCtrl);
+ NULL, EvdevKbdCtrl);
return Success;
}
@@ -467,17 +451,11 @@ EvdevKeyNew (InputInfoPtr pInfo)
evdevStatePtr state = &pEvdev->state;
int i, keys = 0;
- for (i = 0; i <= KEY_UNKNOWN; i++)
+ for (i = 0; i <= 0xF7; i++)
if (test_bit (i, pEvdev->bits.key)) {
keys = 1;
break;
}
- if (!keys)
- for (i = KEY_OK; i <= KEY_MAX; i++)
- if (test_bit (i, pEvdev->bits.key)) {
- keys = 1;
- break;
- }
if (!keys)
return !Success;