mirror of
https://github.com/X11Libre/xf86-input-evdev.git
synced 2026-04-14 11:44:16 +00:00
Compare commits
16 Commits
xlibre-xf8
...
xf86-input
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ed1382866c | ||
|
|
8fe38b2287 | ||
|
|
ef607b6cce | ||
|
|
906a5d6add | ||
|
|
5152d616ca | ||
|
|
2e9a71df5f | ||
|
|
49de32e70f | ||
|
|
f135e07462 | ||
|
|
e926356eb0 | ||
|
|
bd56ab3d72 | ||
|
|
2b30413598 | ||
|
|
52fc8ee846 | ||
|
|
b125b834f4 | ||
|
|
05b20db8db | ||
|
|
43768d59da | ||
|
|
9c524f6963 |
26
.gitignore
vendored
Normal file
26
.gitignore
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
*.patch
|
||||
ChangeLog
|
||||
Makefile
|
||||
Makefile.in
|
||||
aclocal.m4
|
||||
autom4te.cache
|
||||
config.guess
|
||||
config.h
|
||||
config.h.in
|
||||
config.log
|
||||
config.status
|
||||
config.sub
|
||||
configure
|
||||
depcomp
|
||||
install-sh
|
||||
libtool
|
||||
ltmain.sh
|
||||
man/evdev.4
|
||||
missing
|
||||
.deps
|
||||
.libs
|
||||
*.lo
|
||||
*.la
|
||||
stamp-h1
|
||||
*.bz2
|
||||
*.gz
|
||||
47
ChangeLog
47
ChangeLog
@@ -1,47 +0,0 @@
|
||||
2006-01-09 David Nusinow,,, <set EMAIL_ADDRESS environment variable>
|
||||
|
||||
* man/Makefile.am:
|
||||
* man/evdev.man:
|
||||
Bugzilla #968 <https://bugs.freedesktop.org/show_bug.cgi?id=968>
|
||||
Patch #4301 <https://bugs.freedesktop.org/attachment.cgi?id=4301>
|
||||
Add evdev manpage
|
||||
|
||||
2005-12-20 Kevin E. Martin <kem-at-freedesktop-dot-org>
|
||||
|
||||
* configure.ac:
|
||||
Update package version for X11R7 release.
|
||||
|
||||
2005-12-14 Kevin E. Martin <kem-at-freedesktop-dot-org>
|
||||
|
||||
* configure.ac:
|
||||
Update package version number for final X11R7 release candidate.
|
||||
|
||||
2005-12-06 Kevin E. Martin <kem-at-freedesktop-dot-org>
|
||||
|
||||
* man/Makefile.am:
|
||||
Change *man_SOURCES ==> *man_PRE to fix autotools warnings.
|
||||
|
||||
2005-12-03 Kevin E. Martin <kem-at-freedesktop-dot-org>
|
||||
|
||||
* configure.ac:
|
||||
Update package version number for X11R7 RC3 release.
|
||||
|
||||
2005-12-01 Kevin E. Martin <kem-at-freedesktop-dot-org>
|
||||
|
||||
* configure.ac:
|
||||
Remove extraneous AC_MSG_RESULT.
|
||||
|
||||
2005-11-29 Adam Jackson <ajax@freedesktop.org>
|
||||
|
||||
* configure.ac:
|
||||
Only build dlloader modules by default.
|
||||
|
||||
2005-11-09 Kevin E. Martin <kem-at-freedesktop-dot-org>
|
||||
|
||||
* configure.ac:
|
||||
Update package version number for X11R7 RC2 release.
|
||||
|
||||
2005-11-01 Kevin E. Martin <kem-at-freedesktop-dot-org>
|
||||
|
||||
* configure.ac:
|
||||
Update pkgcheck dependencies to work with separate build roots.
|
||||
12
Makefile.am
12
Makefile.am
@@ -20,3 +20,15 @@
|
||||
|
||||
AUTOMAKE_OPTIONS = foreign
|
||||
SUBDIRS = src man
|
||||
|
||||
EXTRA_DIST = ChangeLog autogen.sh
|
||||
|
||||
MAINTAINERCLEANFILES=ChangeLog
|
||||
|
||||
.PHONY: ChangeLog
|
||||
|
||||
ChangeLog:
|
||||
(GIT_DIR=$(top_srcdir)/.git git-log > .changelog.tmp && mv .changelog.tmp ChangeLog; rm -f .changelog.tmp) || \
|
||||
(touch ChangeLog; echo 'git directory not found: installing possibly empty changelog.' >&2)
|
||||
|
||||
dist-hook: ChangeLog
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
AC_PREREQ(2.57)
|
||||
AC_INIT([xf86-input-evdev],
|
||||
2.0.0,
|
||||
2.0.4,
|
||||
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
|
||||
xf86-input-evdev)
|
||||
|
||||
|
||||
53
src/evdev.c
53
src/evdev.c
@@ -42,6 +42,7 @@
|
||||
#include <xf86Xinput.h>
|
||||
#include <exevents.h>
|
||||
#include <mipointer.h>
|
||||
#include <xorgVersion.h>
|
||||
|
||||
#include "evdev.h"
|
||||
|
||||
@@ -130,6 +131,9 @@ PostButtonClicks(InputInfoPtr pInfo, int button, int count)
|
||||
static void
|
||||
PostKbdEvent(InputInfoPtr pInfo, struct input_event *ev, int value)
|
||||
{
|
||||
int code = ev->code + MIN_KEYCODE;
|
||||
static char warned[KEY_MAX];
|
||||
|
||||
/* filter repeat events for chording keys */
|
||||
if (value == 2 &&
|
||||
(ev->code == KEY_LEFTCTRL || ev->code == KEY_RIGHTCTRL ||
|
||||
@@ -140,7 +144,14 @@ PostKbdEvent(InputInfoPtr pInfo, struct input_event *ev, int value)
|
||||
ev->code == KEY_SCROLLLOCK)) /* XXX windows keys? */
|
||||
return;
|
||||
|
||||
xf86PostKeyboardEvent(pInfo->dev, ev->code + MIN_KEYCODE, value);
|
||||
if (code > 255 && ev->code < KEY_MAX) {
|
||||
if (!warned[ev->code])
|
||||
xf86Msg(X_WARNING, "%s: unable to handle keycode %d\n",
|
||||
pInfo->name, ev->code);
|
||||
warned[ev->code] = 1;
|
||||
}
|
||||
|
||||
xf86PostKeyboardEvent(pInfo->dev, code, value);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -161,7 +172,7 @@ EvdevReadInput(InputInfoPtr pInfo)
|
||||
if (len != sizeof ev) {
|
||||
/* The kernel promises that we always only read a complete
|
||||
* event, so len != sizeof ev is an error. */
|
||||
xf86Msg(X_ERROR, "Read error: %s\n", strerror(errno));
|
||||
xf86Msg(X_ERROR, "%s: Read error: %s\n", pInfo->name, strerror(errno));
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -252,8 +263,15 @@ EvdevReadInput(InputInfoPtr pInfo)
|
||||
break;
|
||||
|
||||
default:
|
||||
if (ev.code > BTN_TASK && ev.code < KEY_OK)
|
||||
if (ev.code > BTN_TASK && ev.code < KEY_OK) {
|
||||
/* Some fancy mice with a lot of buttons generate
|
||||
* button events between BTN_TASK and BTN_JOYSTICK */
|
||||
if (ev.code < BTN_JOYSTICK)
|
||||
xf86PostButtonEvent(pInfo->dev, 0,
|
||||
ev.code - BTN_LEFT + 5,
|
||||
value, 0, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
PostKbdEvent(pInfo, &ev, value);
|
||||
break;
|
||||
@@ -298,7 +316,9 @@ EvdevReadInput(InputInfoPtr pInfo)
|
||||
}
|
||||
}
|
||||
|
||||
#define TestBit(bit, array) (array[(bit) / 8] & (1 << ((bit) % 8)))
|
||||
#define LONG_BITS (sizeof(long) * 8)
|
||||
#define NBITS(x) (((x) + LONG_BITS - 1) / LONG_BITS)
|
||||
#define TestBit(bit, array) (array[(bit) / LONG_BITS]) & (1 << ((bit) % LONG_BITS))
|
||||
|
||||
static void
|
||||
EvdevPtrCtrlProc(DeviceIntPtr device, PtrCtrl *ctrl)
|
||||
@@ -834,10 +854,15 @@ EvdevProc(DeviceIntPtr device, int what)
|
||||
if (!pEvdev->kernel24 && ioctl(pInfo->fd, EVIOCGRAB, (void *)1))
|
||||
xf86Msg(X_WARNING, "%s: Grab failed (%s)\n", pInfo->name,
|
||||
strerror(errno));
|
||||
xf86AddEnabledDevice(pInfo);
|
||||
device->public.on = TRUE;
|
||||
if (errno != ENODEV)
|
||||
{
|
||||
xf86AddEnabledDevice(pInfo);
|
||||
if (pEvdev->flags & EVDEV_BUTTON_EVENTS)
|
||||
EvdevMBEmuPreInit(pInfo);
|
||||
device->public.on = TRUE;
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case DEVICE_OFF:
|
||||
if (!pEvdev->kernel24 && ioctl(pInfo->fd, EVIOCGRAB, (void *)0))
|
||||
xf86Msg(X_WARNING, "%s: Release failed (%s)\n", pInfo->name,
|
||||
@@ -849,6 +874,7 @@ EvdevProc(DeviceIntPtr device, int what)
|
||||
|
||||
case DEVICE_CLOSE:
|
||||
xf86Msg(X_INFO, "%s: Close\n", pInfo->name);
|
||||
close(pInfo->fd);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -882,9 +908,9 @@ EvdevConvert(InputInfoPtr pInfo, int first, int num, int v0, int v1, int v2,
|
||||
static int
|
||||
EvdevProbe(InputInfoPtr pInfo)
|
||||
{
|
||||
char key_bitmask[(KEY_MAX + 7) / 8];
|
||||
char rel_bitmask[(REL_MAX + 7) / 8];
|
||||
char abs_bitmask[(ABS_MAX + 7) / 8];
|
||||
long key_bitmask[NBITS(KEY_MAX)];
|
||||
long rel_bitmask[NBITS(REL_MAX)];
|
||||
long abs_bitmask[NBITS(ABS_MAX)];
|
||||
int i, has_axes, has_buttons, has_keys;
|
||||
EvdevPtr pEvdev = pInfo->private;
|
||||
|
||||
@@ -941,7 +967,6 @@ EvdevProbe(InputInfoPtr pInfo)
|
||||
|
||||
if (TestBit(BTN_LEFT, key_bitmask)) {
|
||||
xf86Msg(X_INFO, "%s: Found mouse buttons\n", pInfo->name);
|
||||
EvdevMBEmuPreInit(pInfo);
|
||||
pEvdev->flags |= EVDEV_BUTTON_EVENTS;
|
||||
has_buttons = TRUE;
|
||||
}
|
||||
@@ -1051,7 +1076,7 @@ EvdevPreInit(InputDriverPtr drv, IDevPtr dev, int flags)
|
||||
/* parse the XKB options during kbd setup */
|
||||
|
||||
if (EvdevProbe(pInfo)) {
|
||||
EvdevMBEmuFinalize(pInfo);
|
||||
close(pInfo->fd);
|
||||
xf86DeleteInput(pInfo, 0);
|
||||
return NULL;
|
||||
}
|
||||
@@ -1090,8 +1115,8 @@ static XF86ModuleVersionInfo EvdevVersionRec =
|
||||
MODULEVENDORSTRING,
|
||||
MODINFOSTRING1,
|
||||
MODINFOSTRING2,
|
||||
0, /* Missing from SDK: XORG_VERSION_CURRENT, */
|
||||
1, 0, 0,
|
||||
XORG_VERSION_CURRENT,
|
||||
PACKAGE_VERSION_MAJOR, PACKAGE_VERSION_MINOR, PACKAGE_VERSION_PATCHLEVEL,
|
||||
ABI_CLASS_XINPUT,
|
||||
ABI_XINPUT_VERSION,
|
||||
MOD_CLASS_XINPUT,
|
||||
|
||||
Reference in New Issue
Block a user