summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpingc <pingc>2008-12-02 00:27:48 +0000
committerpingc <pingc>2008-12-02 00:27:48 +0000
commit987fcf7c814bd60a981616d2ec3833f8d0c15ed9 (patch)
treec8b9b2bee52be1c33361fb85b414828bc2f0b3a0
parentcf1959686dbf7e3aa1a52001bf7660fbe11ccbd5 (diff)
downloadxf86-input-wacom-release-0.8.2.tar.gz
Workaround for Xorg 1.5release-0.8.2
-rw-r--r--ChangeLog7
-rw-r--r--configure.in2
-rw-r--r--src/wacom.4x42
-rwxr-xr-xsrc/xdrv/wcmCommon.c7
-rwxr-xr-xsrc/xdrv/wcmISDV4.c13
-rwxr-xr-xsrc/xdrv/xf86Wacom.c15
6 files changed, 56 insertions, 30 deletions
diff --git a/ChangeLog b/ChangeLog
index 3cbf51c..1a56331 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-12-01 Ping Cheng <pingc@wacom.com>
+ * Added workaround for X Server 1.5 to send beep
+ * Patch from Vicenç (vicencb@gmail.com)
+ * Patch from Rene van Paassen (rene.vanpaassen@gmail.com)
+ * web pages updated
+ * Label 0.8.2
+
2008-10-23 Ping Cheng <pingc@wacom.com>
* Fixed a configure.in bug (Bartosz Fabianowski)
* Added kernel 2.6.27 support
diff --git a/configure.in b/configure.in
index 54c0cb2..b0be2cf 100644
--- a/configure.in
+++ b/configure.in
@@ -1,5 +1,5 @@
AC_PREREQ(2.58)
-AC_INIT(linuxwacom, 0.8.1)
+AC_INIT(linuxwacom, 0.8.2)
AM_INIT_AUTOMAKE
AM_MAINTAINER_MODE
diff --git a/src/wacom.4x b/src/wacom.4x
index 10ccf78..ea3406a 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 4x "linuxwacom 0.8.1" "X Version 11"
+.TH WACOM 4x "linuxwacom 0.8.2" "X Version 11"
.SH NAME
wacom \- Wacom input driver
.SH SYNOPSIS
@@ -58,17 +58,17 @@ tells the driver to dialog with the tablet the USB way. This option is
mandatory for USB tablets.
.TP 4
.B Option \fI"ForceDevice"\fP \fI"ISDV4"\fP
-tells the driver to dialog with the tablet the Tablet PC way. Right now
-we only support serial Tablet PC. It is a special Wacom IV protocol,
-called ISDV4 protocol. This option is mandatory for Tablet PC.
+tells the driver to dialog with the tablet the serial Tablet PC way. It
+is a special Wacom IV protocol, called ISDV4 protocol. This option is
+mandatory for serial Tablet PCs only.
.TP 4
.B Option \fI"Suppress"\fP \fI"Inumber"\fP
sets the position increment under which not to transmit coordinates.
This entry must be specified only in the first Wacom subsection if you have
-multiple devices for one tablet. If you don't specify this entry, the default value,
-which is 2, will be used. To disable suppression, the entry should be specified as 0.
-When suppress is defined, an event will be sent only when at least one of the
-following conditions is met:
+multiple devices for one tablet. If you don't specify this entry, the default
+value, which is 2, will be used. To disable suppression, the entry should be
+specified as 0. When suppress is defined, an event will be sent only when at
+least one of the following conditions is met:
the change between the current X coordinate and the previous one is
greater than suppress;
@@ -113,7 +113,7 @@ X coordinate of the bottom corner of the active zone. Default to width of the t
.B Option \fI"BottomY"\fP \fI"number"\fP
Y coordinate of the bottom corner of the active zone. Default to height of the tablet.
.TP 4
-.B Option \fI"ButtonsOnly"\fP \fI"on"\fP
+.B Option \fI"ButtonsOnly"\fP \fI"on"|"off"\fP
disables the device's motion events. Default to off.
.TP 4
.B Option \fI"ButtonM"\fP \fI"AC"\fP
@@ -123,13 +123,20 @@ to 32. The default action reported to Xinput is mouse button M click.
To ignore the button click, i.e., to not report any button click event
to Xinput, use "0" or "button 0".
.TP 4
-.B Option \fI"TPCButton"\fP \fI"on"\fP
-enables the stylus buttons as Tablet PC buttons, i.e., reports stylus button
-event only when its tip is pressed. Default to "on" for Tablet PC; "off" for all other models.
+.B Option \fI"TPCButton"\fP \fI"on"|"off"\fP
+enables the stylus buttons as Tablet PC buttons, i.e., reports stylus
+button event only when its tip is pressed. Default to "on" for Tablet PCs;
+"off" for all other models.
.TP 4
-.B Option \fI"Touch"\fP \fI"on"\fP
-enables the touch event for Tablet PC that supports touch feature, i.e., system cursor moves
-when user touches the tablet. Default to "on" for Tablet PC with touch feature; "off" for all other models.
+.B Option \fI"Touch"\fP \fI"on"|"off"\fP
+enables the touch event for Tablet PC that supports touch feature, i.e.,
+system cursor moves when user touches the tablet. Default to "on" for
+Tablet PCs with touch feature; "off" for all other models.
+.TP 4
+.B Option \fI"Capacity"\fP \fI"number"\fP
+sets touch sensitivity level for capacitive touch device, where number
+can be an integer from -1 to 5. Default is 3 for capacitive tools and
+-1 for none capacitive tools.
.TP 4
.B Option \fI"Speed"\fP \fI"Rspeed"\fP
sets the cursor's relative movement speed to Rspeed. The default value is 1.0.
@@ -156,6 +163,9 @@ this option if your screens are displaying in the same resolutions.
.B Option \fI"ScreenNo"\fP \fI"n"\fP
In a multi-monitor environment, specifies the screen number in which the cursor can move.
.TP 4
+.B Option \fI"MMonitor"\fP \fI"n"\fP
+turns on/off across monitor movement on a non-TwinView multi-monitor desktop. The default is "on".
+.TP 4
.B Option \fI"Rotate"\fP \fI"CW"|"CCW"|"HALF"|"NONE"\fP
rotates the tablet orientation clockwise (CCW) or anti-clockwise (CW) or 180 degrees (HALF). The default is "NONE".
.TP 4
@@ -166,7 +176,7 @@ from 0..100. The input for
slightly depressed curve (firmer) might be "5,0,100,95";
slightly raised curve (softer) might be "0,5,95,100".
.TP 4
-.B Option \fI"KeepShape"\fP \fI"on"\fP
+.B Option \fI"KeepShape"\fP \fI"on"|"off"\fP
When this option is enabled, the active zone begins according to TopX
and TopY. The bottom corner is adjusted to keep the ratio width/height
of the active zone the same as the screen while maximizing the area
diff --git a/src/xdrv/wcmCommon.c b/src/xdrv/wcmCommon.c
index 812a789..ff834f4 100755
--- a/src/xdrv/wcmCommon.c
+++ b/src/xdrv/wcmCommon.c
@@ -266,7 +266,7 @@ static void xf86WcmSendButtons(LocalDevicePtr local, int buttons, int rx, int ry
"buttons=%d for %s\n", buttons, local->name));
/* Tablet PC buttons. */
- if ( common->wcmTPCButton && !IsCursor(priv) && !IsPad(priv) && !IsEraser(priv) )
+ if ( common->wcmTPCButton && !IsCursor(priv) && !IsPad(priv) )
{
if ( buttons & 1 )
{
@@ -991,10 +991,7 @@ void xf86WcmSendEvents(LocalDevicePtr local, const WacomDeviceState* ds)
xf86PostMotionEvent(local->dev, is_absolute,
0, naxes, x, y, z, v3, v4, v5);
- if (priv->oldProximity || !IsTouch(priv))
- sendCommonEvents(local, ds, x, y, z, v3, v4, v5);
- else
- buttons = 0;
+ sendCommonEvents(local, ds, x, y, z, v3, v4, v5);
}
/* not in proximity */
diff --git a/src/xdrv/wcmISDV4.c b/src/xdrv/wcmISDV4.c
index 67a001b..5e030b3 100755
--- a/src/xdrv/wcmISDV4.c
+++ b/src/xdrv/wcmISDV4.c
@@ -233,6 +233,11 @@ static int isdv4GetRanges(LocalDevicePtr local)
if (isdv4Query(local, WC_ISDV4_TOUCH_QUERY, data) == Success)
{
/* (data[2] & 0x07) == 0 is for resistive touch */
+ if (!(data[2] & 0x07) && data[1])
+ {
+ common->wcmMaxTouchX = common->wcmMaxTouchY = (int)(1 << data[1]);
+ }
+
if ((data[0] & 0x41) && (data[2] & 0x07))
{
/* tablet model */
@@ -292,10 +297,10 @@ static int isdv4GetRanges(LocalDevicePtr local)
if (common->wcmMaxX && common->wcmMaxY && !common->wcmTouchResolX)
{
/* Some touch tablet don't report physical size */
- common->wcmTouchResolX = common->wcmMaxTouchX /
- (common->wcmResolX * common->wcmMaxX);
- common->wcmTouchResolY = common->wcmMaxTouchY /
- (common->wcmResolY * common->wcmMaxY);
+ common->wcmTouchResolX = (int)((double)(common->wcmMaxTouchX *
+ common->wcmResolX) / (double)common->wcmMaxX + 0.5);
+ common->wcmTouchResolY = (int)((double)(common->wcmMaxTouchY *
+ common->wcmResolY) / (double)common->wcmMaxY + 0.5);
}
}
diff --git a/src/xdrv/xf86Wacom.c b/src/xdrv/xf86Wacom.c
index 9bdbef8..7b61113 100755
--- a/src/xdrv/xf86Wacom.c
+++ b/src/xdrv/xf86Wacom.c
@@ -73,9 +73,10 @@
* 2008-07-09 47-pc0.8.1 - new release
* 2008-07-17 47-pc0.8.1-1 - Support USB TabletPC
* 2008-08-27 47-pc0.8.1-4 - Support Bamboo1 Meadium and Monarch
+ * 2008-11-11 47-pc0.8.2 - new release
*/
-static const char identification[] = "$Identification: 47-0.8.1-6 $";
+static const char identification[] = "$Identification: 47-0.8.2 $";
/****************************************************************************/
@@ -531,8 +532,14 @@ static int xf86WcmRegisterX11Devices (LocalDevicePtr local)
nbaxes = priv->naxes; /* X, Y, Pressure, Tilt-X, Tilt-Y, Wheel */
nbbuttons = priv->nbuttons; /* Use actual number of buttons, if possible */
- nbkeys = nbbuttons; /* Same number of keys since any button may be */
- /* configured as an either mouse button or key */
+ nbkeys = nbbuttons; /* Same number of keys since any button may be
+ * configured as an either mouse button or key */
+
+ if (!nbbuttons)
+ nbbuttons = nbkeys = 1; /* Xserver 1.5 or later crashes when
+ * nbbuttons = 0 while sending a beep
+ * This is only a workaround.
+ */
DBG(10, priv->debugLevel, ErrorF("xf86WcmRegisterX11Devices "
"(%s) %d buttons, %d keys, %d axes\n",
@@ -757,7 +764,7 @@ char *xf86WcmEventAutoDevProbe (LocalDevicePtr local)
ErrorF("%s waiting 100 msec (total %dms) for device to become ready\n", local->name, wait);
usleep(100*1000);
}
- ErrorF("%s no synaptics event device found (checked %d nodes, waited %d msec)\n",
+ ErrorF("%s no Wacom event device found (checked %d nodes, waited %d msec)\n",
local->name, i + 1, wait);
return FALSE;
}