aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.ac2
-rw-r--r--man/evdev.man3
-rw-r--r--src/evdev.c19
3 files changed, 12 insertions, 12 deletions
diff --git a/configure.ac b/configure.ac
index 63460b7..07cd64e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
# Initialize Autoconf
AC_PREREQ([2.60])
AC_INIT([xf86-input-evdev],
- [2.4.99],
+ [2.5.99],
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
[xf86-input-evdev])
AC_CONFIG_SRCDIR([Makefile.am])
diff --git a/man/evdev.man b/man/evdev.man
index 9b9a0ef..adb3f8d 100644
--- a/man/evdev.man
+++ b/man/evdev.man
@@ -238,5 +238,4 @@ value.
.SH AUTHORS
Kristian Høgsberg, Peter Hutterer
.SH "SEE ALSO"
-__xservername__(__appmansuffix__), __xconfigfile__(__filemansuffix__), Xserver(__appmansuffix__), X(__miscmansuffix__),
-README.mouse.
+__xservername__(__appmansuffix__), __xconfigfile__(__filemansuffix__), Xserver(__appmansuffix__), X(__miscmansuffix__)
diff --git a/src/evdev.c b/src/evdev.c
index 851ae8d..ae20de3 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -392,7 +392,7 @@ EvdevProcessValuators(InputInfoPtr pInfo, int v[MAX_VALUATORS], int *num_v,
for (i = 0; i < REL_CNT; i++)
{
int map = pEvdev->axis_map[i];
- if (map != -1)
+ if (pEvdev->delta[i] && map != -1)
{
v[map] = pEvdev->delta[i];
if (map < first)
@@ -406,11 +406,11 @@ EvdevProcessValuators(InputInfoPtr pInfo, int v[MAX_VALUATORS], int *num_v,
*first_v = first;
}
/*
- * Some devices only generate valid abs coords when BTN_DIGI is
+ * Some devices only generate valid abs coords when BTN_TOOL_PEN is
* pressed. On wacom tablets, this means that the pen is in
- * proximity of the tablet. After the pen is removed, BTN_DIGI is
+ * proximity of the tablet. After the pen is removed, BTN_TOOL_PEN is
* released, and a (0, 0) absolute event is generated. Checking
- * pEvdev->digi here, lets us ignore that event. pEvdev is
+ * pEvdev->tool here, lets us ignore that event. pEvdev is
* initialized to 1 so devices that doesn't use this scheme still
* just works.
*/
@@ -583,7 +583,6 @@ EvdevProcessKeyEvent(InputInfoPtr pInfo, struct input_event *ev)
break;
case BTN_TOUCH:
- pEvdev->tool = value ? ev->code : 0;
if (!(pEvdev->flags & (EVDEV_TOUCHSCREEN | EVDEV_TABLET)))
break;
/* Treat BTN_TOUCH from devices that only have BTN_TOUCH as
@@ -621,9 +620,9 @@ EvdevPostAbsoluteMotionEvents(InputInfoPtr pInfo, int *num_v, int *first_v,
EvdevPtr pEvdev = pInfo->private;
/*
- * Some devices only generate valid abs coords when BTN_DIGI is
+ * Some devices only generate valid abs coords when BTN_TOOL_PEN is
* pressed. On wacom tablets, this means that the pen is in
- * proximity of the tablet. After the pen is removed, BTN_DIGI is
+ * proximity of the tablet. After the pen is removed, BTN_TOOL_PEN is
* released, and a (0, 0) absolute event is generated. Checking
* pEvdev->tool here, lets us ignore that event. pEvdev->tool is
* initialized to 1 so devices that don't use this scheme still
@@ -668,7 +667,7 @@ static void
EvdevProcessSyncEvent(InputInfoPtr pInfo, struct input_event *ev)
{
int num_v = 0, first_v = 0;
- int v[MAX_VALUATORS];
+ int v[MAX_VALUATORS] = {};
EvdevPtr pEvdev = pInfo->private;
EvdevProcessValuators(pInfo, v, &num_v, &first_v);
@@ -1875,7 +1874,9 @@ EvdevProbe(InputInfoPtr pInfo)
if ((TestBit(ABS_X, pEvdev->abs_bitmask) &&
TestBit(ABS_Y, pEvdev->abs_bitmask))) {
xf86Msg(X_PROBED, "%s: Found x and y absolute axes\n", pInfo->name);
- if (TestBit(BTN_TOOL_PEN, pEvdev->key_bitmask))
+ if (TestBit(BTN_TOOL_PEN, pEvdev->key_bitmask) ||
+ TestBit(BTN_STYLUS, pEvdev->key_bitmask) ||
+ TestBit(BTN_STYLUS2, pEvdev->key_bitmask))
{
xf86Msg(X_PROBED, "%s: Found absolute tablet.\n", pInfo->name);
pEvdev->flags |= EVDEV_TABLET;