summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog11
-rw-r--r--acinclude.m445
-rw-r--r--configure.in1
-rw-r--r--src/2.4.22/wacom.c3
-rw-r--r--src/2.4.30x86-64/wacom.c3
-rw-r--r--src/2.4/wacom.c3
-rw-r--r--src/2.6.10/wacom.c3
-rw-r--r--src/2.6.11/wacom.c3
-rw-r--r--src/2.6.13/wacom.c3
-rw-r--r--src/2.6.14/wacom.c3
-rw-r--r--src/2.6.15/wacom.c3
-rw-r--r--src/2.6.16/wacom_wac.c3
-rw-r--r--src/2.6.18/wacom.h1
-rw-r--r--src/2.6.8/wacom.c3
-rw-r--r--src/2.6.9/wacom.c3
-rw-r--r--src/2.6/wacom.c3
-rwxr-xr-xsrc/util/Makefile.am1
-rwxr-xr-xsrc/util/wacserial.c6
-rwxr-xr-xsrc/util/wacusb.c4
-rw-r--r--src/wacom.4x19
-rwxr-xr-xsrc/xdrv/wcmCommon.c39
21 files changed, 108 insertions, 55 deletions
diff --git a/ChangeLog b/ChangeLog
index a6f4783..db27af1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2006-09-27 Ping Cheng <pingc@wacom.com>
+ * Updated wacserial.c (Adam Marmbrant)
+ * Updated package configuration scripts
+ (Patch 1538734, Magnus Vigerlöf and Kai Sattler)
+
+2006-09-22 Ping Cheng <pingc@wacom.com>
+ * Updated wacom man page, wacom.4x
+ * Updated wacdump
+ * Fixed an I3 and Cintiq 21UX pad out-prox bit (Martin Wawro)
+ * Applied TabletPC button XFree86 workaround to Xorg
+
2006-09-14 Ping Cheng <pingc@wacom.com>
* Fixed a filter bug (Wolfgang Oertl, etc).
* Ready to release 0.7.5-3
diff --git a/acinclude.m4 b/acinclude.m4
index 59e42a0..b17419d 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -14,7 +14,7 @@ AC_DEFUN([AC_WCM_CHECK_ENVIRON],[
dnl Variables for various checks
WCM_KSTACK=-mpreferred-stack-boundary=2
WCM_KERNEL=unknown
-WCM_KERNEL_VER=2.4
+WCM_KERNEL_VER=
WCM_ISLINUX=no
WCM_ENV_KERNEL=no
WCM_OPTION_MODVER=no
@@ -125,15 +125,23 @@ dnl Check for kernel build environment
AC_ARG_WITH(kernel,
AS_HELP_STRING([--with-kernel=dir], [Specify kernel source directory]),
[
- WCM_KERNELDIR="$withval"
- AC_MSG_CHECKING(for valid kernel source tree)
- if test -f "$WCM_KERNELDIR/include/linux/input.h"; then
- AC_MSG_RESULT(ok)
- WCM_ENV_KERNEL=yes
- else
- AC_MSG_RESULT(missing input.h)
- AC_MSG_RESULT("Unable to find $WCM_KERNELDIR/include/linux/input.h")
+ AC_MSG_CHECKING(if kernel source is enabled)
+ if test "x$with_kernel" = "xno"; then
+ AC_MSG_RESULT(no)
+ WCM_KERNELDIR=
WCM_ENV_KERNEL=no
+ else
+ AC_MSG_RESULT(yes)
+ WCM_KERNELDIR="$withval"
+ AC_MSG_CHECKING(for valid kernel source tree)
+ if test -f "$WCM_KERNELDIR/include/linux/input.h"; then
+ AC_MSG_RESULT(ok)
+ WCM_ENV_KERNEL=yes
+ else
+ AC_MSG_RESULT(missing input.h)
+ AC_MSG_RESULT("Unable to find $WCM_KERNELDIR/include/linux/input.h")
+ WCM_ENV_KERNEL=no
+ fi
fi
],
[
@@ -169,6 +177,25 @@ AS_HELP_STRING([--with-kernel=dir], [Specify kernel source directory]),
fi
])])
dnl
+AC_DEFUN([AC_WCM_CHECK_MODSUPP],[
+dnl Check for kernel module support
+if test x$WCM_ENV_KERNEL = xyes; then
+ AC_MSG_CHECKING(for kernel module support)
+ modcfg=""
+ if test -f "$WCM_KERNELDIR/include/linux/autoconf.h"; then
+ modcfg="`grep CONFIG_MODULES $WCM_KERNELDIR/include/linux/autoconf.h | cut -d' ' -f 3-`"
+ fi
+ if test "x$modcfg" = "x1"; then
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no)
+ WCM_KERNELDIR=""
+ WCM_ENV_KERNEL=no
+ WCM_OPTION_MODVER=no
+ fi
+fi
+])
+dnl
AC_DEFUN([AC_WCM_CHECK_MODVER],[
dnl Guess modversioning
if test x$WCM_ENV_KERNEL = xyes; then
diff --git a/configure.in b/configure.in
index 5b60e2e..75e10a7 100644
--- a/configure.in
+++ b/configure.in
@@ -33,6 +33,7 @@ AC_WCM_CHECK_ENVIRON
dnl If linux kernel is detected, check for module versioning and kernel source
if test x$WCM_ISLINUX = xyes; then
AC_WCM_CHECK_KERNELSOURCE
+ AC_WCM_CHECK_MODSUPP
AC_WCM_CHECK_MODVER
fi
diff --git a/src/2.4.22/wacom.c b/src/2.4.22/wacom.c
index d81dddd..3478201 100644
--- a/src/2.4.22/wacom.c
+++ b/src/2.4.22/wacom.c
@@ -620,7 +620,8 @@ static void wacom_intuos_irq(struct urb *urb)
input_report_abs(dev, ABS_RX, ((data[1] & 0x1f) << 8) | data[2]);
input_report_abs(dev, ABS_RY, ((data[3] & 0x1f) << 8) | data[4]);
- if((data[5] & 0x0f) | (data[6] & 0x0f) | (data[1] & 0x1f) | data[2])
+ if((data[5] & 0x0f) | (data[6] & 0x0f) | (data[1] & 0x1f) |
+ data[2] | (data[3] & 0x1f) | data[4])
input_report_key(dev, wacom->tool[1], 1);
else
input_report_key(dev, wacom->tool[1], 0);
diff --git a/src/2.4.30x86-64/wacom.c b/src/2.4.30x86-64/wacom.c
index 3a658ac..72c72a9 100644
--- a/src/2.4.30x86-64/wacom.c
+++ b/src/2.4.30x86-64/wacom.c
@@ -562,7 +562,8 @@ static void wacom_intuos_irq(struct urb *urb)
input_report_abs(dev, ABS_RX, ((data[1] & 0x1f) << 8) | data[2]);
input_report_abs(dev, ABS_RY, ((data[3] & 0x1f) << 8) | data[4]);
- if((data[5] & 0x0f) | (data[6] & 0x0f) | (data[1] & 0x1f) | data[2])
+ if((data[5] & 0x0f) | (data[6] & 0x0f) | (data[1] & 0x1f) |
+ data[2] | (data[3] & 0x1f) | data[4])
input_report_key(dev, wacom->tool[1], 1);
else
input_report_key(dev, wacom->tool[1], 0);
diff --git a/src/2.4/wacom.c b/src/2.4/wacom.c
index 3df3517..cc20e73f 100644
--- a/src/2.4/wacom.c
+++ b/src/2.4/wacom.c
@@ -618,7 +618,8 @@ static void wacom_intuos_irq(struct urb *urb)
input_report_abs(dev, ABS_RX, ((data[1] & 0x1f) << 8) | data[2]);
input_report_abs(dev, ABS_RY, ((data[3] & 0x1f) << 8) | data[4]);
- if((data[5] & 0x0f) | (data[6] & 0x0f) | (data[1] & 0x1f) | data[2])
+ if((data[5] & 0x0f) | (data[6] & 0x0f) | (data[1] & 0x1f) |
+ data[2] | (data[3] & 0x1f) | data[4])
input_report_key(dev, wacom->tool[1], 1);
else
input_report_key(dev, wacom->tool[1], 0);
diff --git a/src/2.6.10/wacom.c b/src/2.6.10/wacom.c
index 80b7c5a..fdda22f 100644
--- a/src/2.6.10/wacom.c
+++ b/src/2.6.10/wacom.c
@@ -676,7 +676,8 @@ static void wacom_intuos_irq(struct urb *urb, struct pt_regs *regs)
input_report_abs(dev, ABS_RX, ((data[1] & 0x1f) << 8) | data[2]);
input_report_abs(dev, ABS_RY, ((data[3] & 0x1f) << 8) | data[4]);
- if((data[5] & 0x0f) | (data[6] & 0x0f) | (data[1] & 0x1f) | data[2])
+ if((data[5] & 0x0f) | (data[6] & 0x0f) | (data[1] & 0x1f) |
+ data[2] | (data[3] & 0x1f) | data[4])
input_report_key(dev, wacom->tool[1], 1);
else
input_report_key(dev, wacom->tool[1], 0);
diff --git a/src/2.6.11/wacom.c b/src/2.6.11/wacom.c
index c612ba9..87563ae 100644
--- a/src/2.6.11/wacom.c
+++ b/src/2.6.11/wacom.c
@@ -676,7 +676,8 @@ static void wacom_intuos_irq(struct urb *urb, struct pt_regs *regs)
input_report_abs(dev, ABS_RX, ((data[1] & 0x1f) << 8) | data[2]);
input_report_abs(dev, ABS_RY, ((data[3] & 0x1f) << 8) | data[4]);
- if((data[5] & 0x0f) | (data[6] & 0x0f) | (data[1] & 0x1f) | data[2])
+ if((data[5] & 0x0f) | (data[6] & 0x0f) | (data[1] & 0x1f) |
+ data[2] | (data[3] & 0x1f) | data[4])
input_report_key(dev, wacom->tool[1], 1);
else
input_report_key(dev, wacom->tool[1], 0);
diff --git a/src/2.6.13/wacom.c b/src/2.6.13/wacom.c
index 1cb99e5..0f87755 100644
--- a/src/2.6.13/wacom.c
+++ b/src/2.6.13/wacom.c
@@ -664,7 +664,8 @@ static void wacom_intuos_irq(struct urb *urb, struct pt_regs *regs)
input_report_abs(dev, ABS_RX, ((data[1] & 0x1f) << 8) | data[2]);
input_report_abs(dev, ABS_RY, ((data[3] & 0x1f) << 8) | data[4]);
- if((data[5] & 0x0f) | (data[6] & 0x0f) | (data[1] & 0x1f) | data[2])
+ if((data[5] & 0x0f) | (data[6] & 0x0f) | (data[1] & 0x1f) |
+ data[2] | (data[3] & 0x1f) | data[4])
input_report_key(dev, wacom->tool[1], 1);
else
input_report_key(dev, wacom->tool[1], 0);
diff --git a/src/2.6.14/wacom.c b/src/2.6.14/wacom.c
index 3575d4d..1e8c310 100644
--- a/src/2.6.14/wacom.c
+++ b/src/2.6.14/wacom.c
@@ -660,7 +660,8 @@ static void wacom_intuos_irq(struct urb *urb, struct pt_regs *regs)
input_report_abs(dev, ABS_RX, ((data[1] & 0x1f) << 8) | data[2]);
input_report_abs(dev, ABS_RY, ((data[3] & 0x1f) << 8) | data[4]);
- if((data[5] & 0x0f) | (data[6] & 0x0f) | (data[1] & 0x1f) | data[2])
+ if((data[5] & 0x0f) | (data[6] & 0x0f) | (data[1] & 0x1f) |
+ data[2] | (data[3] & 0x1f) | data[4])
input_report_key(dev, wacom->tool[1], 1);
else
input_report_key(dev, wacom->tool[1], 0);
diff --git a/src/2.6.15/wacom.c b/src/2.6.15/wacom.c
index 40b5bc1..11ba5e6 100644
--- a/src/2.6.15/wacom.c
+++ b/src/2.6.15/wacom.c
@@ -662,7 +662,8 @@ static void wacom_intuos_irq(struct urb *urb, struct pt_regs *regs)
input_report_abs(dev, ABS_RX, ((data[1] & 0x1f) << 8) | data[2]);
input_report_abs(dev, ABS_RY, ((data[3] & 0x1f) << 8) | data[4]);
- if((data[5] & 0x0f) | (data[6] & 0x0f) | (data[1] & 0x1f) | data[2])
+ if((data[5] & 0x0f) | (data[6] & 0x0f) | (data[1] & 0x1f) |
+ data[2] | (data[3] & 0x1f) | data[4])
input_report_key(dev, wacom->tool[1], 1);
else
input_report_key(dev, wacom->tool[1], 0);
diff --git a/src/2.6.16/wacom_wac.c b/src/2.6.16/wacom_wac.c
index efe20d5..ebcb06d 100644
--- a/src/2.6.16/wacom_wac.c
+++ b/src/2.6.16/wacom_wac.c
@@ -396,7 +396,8 @@ static int wacom_intuos_irq(struct wacom_wac *wacom, void *wcombo)
wacom_report_abs(wcombo, ABS_RX, ((data[1] & 0x1f) << 8) | data[2]);
wacom_report_abs(wcombo, ABS_RY, ((data[3] & 0x1f) << 8) | data[4]);
- if((data[5] & 0x0f) | (data[6] & 0x0f) | (data[1] & 0x1f) | data[2])
+ if((data[5] & 0x0f) | (data[6] & 0x0f) | (data[1] & 0x1f) |
+ data[2] | (data[3] & 0x1f) | data[4])
wacom_report_key(wcombo, wacom->tool[1], 1);
else
wacom_report_key(wcombo, wacom->tool[1], 0);
diff --git a/src/2.6.18/wacom.h b/src/2.6.18/wacom.h
index 2b3066f..76f0231 100644
--- a/src/2.6.18/wacom.h
+++ b/src/2.6.18/wacom.h
@@ -63,6 +63,7 @@
* v1.46 (pc) - Split wacom.c into wacom_sys.c and wacom_wac.c,
* - where wacom_sys.c deals with system specific code,
* - and wacom_wac.c deals with Wacom specific code
+ * - Support Intuos3 4x6
*/
/*
diff --git a/src/2.6.8/wacom.c b/src/2.6.8/wacom.c
index 3284bec..d3de0d4 100644
--- a/src/2.6.8/wacom.c
+++ b/src/2.6.8/wacom.c
@@ -675,7 +675,8 @@ static void wacom_intuos_irq(struct urb *urb, struct pt_regs *regs)
input_report_abs(dev, ABS_RX, ((data[1] & 0x1f) << 8) | data[2]);
input_report_abs(dev, ABS_RY, ((data[3] & 0x1f) << 8) | data[4]);
- if((data[5] & 0x0f) | (data[6] & 0x0f) | (data[1] & 0x1f) | data[2])
+ if((data[5] & 0x0f) | (data[6] & 0x0f) | (data[1] & 0x1f) |
+ data[2] | (data[3] & 0x1f) | data[4])
input_report_key(dev, wacom->tool[1], 1);
else
input_report_key(dev, wacom->tool[1], 0);
diff --git a/src/2.6.9/wacom.c b/src/2.6.9/wacom.c
index 077c734..733f60d 100644
--- a/src/2.6.9/wacom.c
+++ b/src/2.6.9/wacom.c
@@ -675,7 +675,8 @@ static void wacom_intuos_irq(struct urb *urb, struct pt_regs *regs)
input_report_abs(dev, ABS_RX, ((data[1] & 0x1f) << 8) | data[2]);
input_report_abs(dev, ABS_RY, ((data[3] & 0x1f) << 8) | data[4]);
- if((data[5] & 0x0f) | (data[6] & 0x0f) | (data[1] & 0x1f) | data[2])
+ if((data[5] & 0x0f) | (data[6] & 0x0f) | (data[1] & 0x1f) |
+ data[2] | (data[3] & 0x1f) | data[4])
input_report_key(dev, wacom->tool[1], 1);
else
input_report_key(dev, wacom->tool[1], 0);
diff --git a/src/2.6/wacom.c b/src/2.6/wacom.c
index 412bb3e..78e1973 100644
--- a/src/2.6/wacom.c
+++ b/src/2.6/wacom.c
@@ -674,7 +674,8 @@ static void wacom_intuos_irq(struct urb *urb, struct pt_regs *regs)
input_report_abs(dev, ABS_RX, ((data[1] & 0x1f) << 8) | data[2]);
input_report_abs(dev, ABS_RY, ((data[3] & 0x1f) << 8) | data[4]);
- if((data[5] & 0x0f) | (data[6] & 0x0f) | (data[1] & 0x1f) | data[2])
+ if((data[5] & 0x0f) | (data[6] & 0x0f) | (data[1] & 0x1f) |
+ data[2] | (data[3] & 0x1f) | data[4])
input_report_key(dev, wacom->tool[1], 1);
else
input_report_key(dev, wacom->tool[1], 0);
diff --git a/src/util/Makefile.am b/src/util/Makefile.am
index a586aca..96bf4e0 100755
--- a/src/util/Makefile.am
+++ b/src/util/Makefile.am
@@ -11,7 +11,6 @@ DEPFLAGS = @WCM_DEPFLAGS@
# potentially be built or installed depending on the results of
# the configuration.
EXTRA_PROGRAMS = wacdump xidump xsetwacom
-EXTRA_SCRIPTS = wacom_drv.o wacom_drv.so wacomcpl wacomcpl-exec
# Source dependencies
wacdump_SOURCES = wacdump.c wacscrn.c wacscrn.h \
diff --git a/src/util/wacserial.c b/src/util/wacserial.c
index ef07d3b..f6e3d56 100755
--- a/src/util/wacserial.c
+++ b/src/util/wacserial.c
@@ -1179,10 +1179,10 @@ static int SerialParseWacomIV_1_2(SERIALTABLET* pSerial,
{
stylus = puchData[0] & 0x20 ? 1 : 0;
if (pSerial->nVerMinor == 2)
- press = (puchData[6] & 0x3F) << 1 | ((puchData[3] & 0x4) >> 2) |
- (puchData[6] & 0x40) ? 0 : 0x80;
+ press = ((puchData[6] & 0x3F) << 1) | ((puchData[3] & 0x4) >> 2) |
+ ((puchData[6] & 0x40) ? 0 : 0x80);
else
- press = (puchData[6] & 0x3F) + (puchData[6] & 0x40) ? 0 : 64;
+ press = (puchData[6] & 0x3F) + ((puchData[6] & 0x40) ? 0 : 64);
if (stylus)
{
diff --git a/src/util/wacusb.c b/src/util/wacusb.c
index be232ee..ce63ce7 100755
--- a/src/util/wacusb.c
+++ b/src/util/wacusb.c
@@ -724,8 +724,10 @@ static int USBReadRaw(WACOMTABLET_PRIV* pTablet, unsigned char* puchData,
static int USBParseMSC(USBTABLET* pUSB, struct input_event* pEv)
{
- if (pEv->code == MSC_SERIAL)
+ if (pEv->code == MSC_SERIAL && pEv->value)
pUSB->state.values[WACOMFIELD_SERIAL].nValue = pEv->value;
+ if (!pUSB->state.values[WACOMFIELD_PROXIMITY].nValue)
+ pUSB->state.values[WACOMFIELD_SERIAL].nValue = 0;
return 0;
}
diff --git a/src/wacom.4x b/src/wacom.4x
index 96e4712..6f47672 100644
--- a/src/wacom.4x
+++ b/src/wacom.4x
@@ -1,7 +1,7 @@
.\" $XFree86: xc/programs/Xserver/hw/xfree86/input/wacom/wacom.man,v 1.1 2001/01/24 00:06:39 dawes Exp $
.\" shorthand for double quote that works everywhere.
.ds q \N'34'
-.TH WACOM __drivermansuffix__ __vendorversion__
+.TH WACOM 4 "linuxwacom 0.7.5" "X Version 11"
.SH NAME
wacom \- Wacom input driver
.SH SYNOPSIS
@@ -15,7 +15,7 @@ wacom \- Wacom input driver
.fi
.SH DESCRIPTION
.B wacom
-is an __xservername__ input driver for Wacom devices.
+is an X input driver for Wacom devices.
.PP
The
.B wacom
@@ -27,7 +27,7 @@ need this driver. USB tablet support is available on some Linux platforms.
USB tablets needs wacom kernel driver being loaded before this driver starts.
Please check linuxwacom.sf.net for latest updates of Wacom X and kernel drivers.
.SH CONFIGURATION DETAILS
-Please refer to __xconfigfile__(__filemansuffix__) for general configuration
+Please refer to xorg.conf(5x) for general configuration
details and for options that can be used with all input drivers. This
section only covers configuration details specific to this driver.
.PP
@@ -38,11 +38,12 @@ supports the following entries:
.TP 4
.B Option \fI"Type"\fP \fI"stylus"|"eraser"|"cursor"|"pad"\fP
sets the type of tool the device represents. This option is mandatory. "pad" is
-for Intuos 3, Cintiq 21UX, or Graphire 4 Tablet Menu Strip(s) only. It is required
-for Intuos 3, Cintiq 21UX, or Graphire 4 if your application supports Tablet Menu
-Strip features. "pad" is reported as a second tool in the driver. Since it will
-not move the system's cursor, IT SHOULD NOT have any of those core options, such
-as "SendCoreEvents" or "AlwaysCore.
+for Intuos 3, Cintiq 21UX, or Graphire 4 ExpressKeys only. It is required
+for Intuos 3, Cintiq 21UX, or Graphire 4 if your application supports
+ExpressKeys
+features. "pad" is reported as a second tool in the driver. Since it will
+not move the system's cursor, IT SHOULD NOT have any of those core options,
+such as "SendCoreEvents" or "AlwaysCore".
.TP 4
.B Option \fI"Device"\fP \fI"path"\fP
sets the path to the special file which represents serial line where
@@ -177,7 +178,7 @@ sets the pressure threshold used to generate a button 1 events of stylus.
The default is MaxPressure*3/50.
.RE
.SH "SEE ALSO"
-__xservername__(__appmansuffix__), __xconfigfile__(__filemansuffix__), xorgconfig(__appmansuffix__), Xserver(__appmansuffix__), X(__miscmansuffix__).
+Xorg(1x), xorg.conf(5x), xorgconfig(1x), Xserver(1x), X(7).
.SH AUTHORS
Frederic Lepied <lepied@xfree86.org>
Ping Cheng <pingc@wacom.com>
diff --git a/src/xdrv/wcmCommon.c b/src/xdrv/wcmCommon.c
index 3c951c6..925e9ef 100755
--- a/src/xdrv/wcmCommon.c
+++ b/src/xdrv/wcmCommon.c
@@ -24,14 +24,17 @@
#include "xf86Wacom.h"
-#if XF86_VERSION_MAJOR < 4
/*
+ #if XF86_VERSION_MAJOR < 4
+ *
* There is a bug in XFree86 for combined left click and
* other button. It'll lost left up when releases.
* This should be removed if XFree86 fixes the problem.
- */
+ * This bug happens on Xorg as well.
# define XF86_BUTTON1_BUG
#endif
+*/
+#define XF86_BUTTON1_BUG
WacomDeviceClass* wcmDeviceClasses[] =
{
@@ -661,23 +664,23 @@ void xf86WcmSendEvents(LocalDevicePtr local, const WacomDeviceState* ds, unsigne
{
/* for multiple monitor support, we need to set the proper
* screen and modify the axes before posting events */
- if(!(priv->flags & BUTTONS_ONLY_FLAG))
- {
- xf86WcmSetScreen(local, &rx, &ry);
- }
+ if(!(priv->flags & BUTTONS_ONLY_FLAG))
+ {
+ xf86WcmSetScreen(local, &rx, &ry);
+ }
- /* unify acceleration in both directions for relative mode to draw a circle */
- if (!is_absolute)
- rx *= priv->factorY / priv->factorX;
+ /* unify acceleration in both directions for relative mode to draw a circle */
+ if (!is_absolute)
+ rx *= priv->factorY / priv->factorX;
- /* don't emit proximity events if device does not support proximity */
- if ((local->dev->proximity && !priv->oldProximity))
- xf86PostProximityEvent(local->dev, 1, 0, naxes,
+ /* don't emit proximity events if device does not support proximity */
+ if ((local->dev->proximity && !priv->oldProximity))
+ xf86PostProximityEvent(local->dev, 1, 0, naxes,
rx, ry, rz, v3, v4, v5);
- if(!(priv->flags & BUTTONS_ONLY_FLAG))
- xf86PostMotionEvent(local->dev, is_absolute,
+ if(!(priv->flags & BUTTONS_ONLY_FLAG))
+ xf86PostMotionEvent(local->dev, is_absolute,
0, naxes, rx, ry, rz, v3, v4, v5);
if (priv->oldButtons != buttons)
@@ -780,8 +783,6 @@ void xf86WcmSendEvents(LocalDevicePtr local, const WacomDeviceState* ds, unsigne
static int xf86WcmSuppress(int suppress, const WacomDeviceState* dsOrig,
const WacomDeviceState* dsNew)
{
- int drot;
-
/* NOTE: Suppression value of zero disables suppression. */
DBG(11, ErrorF("xf86WcmSuppress checking data (suppress=%d)\n", suppress));
@@ -795,10 +796,8 @@ static int xf86WcmSuppress(int suppress, const WacomDeviceState* dsOrig,
if (ABS(dsOrig->stripy - dsNew->stripy) > suppress) return 0;
if (ABS(dsOrig->pressure - dsNew->pressure) > suppress) return 0;
if (ABS(dsOrig->throttle - dsNew->throttle) > suppress) return 0;
- drot = ABS(dsOrig->rotation - dsNew->rotation)-900 ?
- 1800 - ABS(dsOrig->rotation - dsNew->rotation) :
- ABS(dsNew->rotation - dsOrig->rotation);
- if (drot > suppress) return 0;
+ if (ABS(dsOrig->rotation - dsNew->rotation) > suppress &&
+ (1800 - ABS(dsOrig->rotation - dsNew->rotation)) > suppress) return 0;
/* look for change in absolute wheel
* position or any relative wheel movement */