diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | configure.in | 2 | ||||
-rw-r--r-- | src/wacom.4x | 42 | ||||
-rwxr-xr-x | src/xdrv/wcmCommon.c | 7 | ||||
-rwxr-xr-x | src/xdrv/wcmISDV4.c | 13 | ||||
-rwxr-xr-x | src/xdrv/xf86Wacom.c | 15 |
6 files changed, 56 insertions, 30 deletions
@@ -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; } |