TC1100 stylus buttons patch
Jump to navigation
Jump to search
Summary
This patch for the X server Wacom drivers maps the TC1100 stylus-activated buttons to mouse buttons 30, 31 and 32.
Patch listing
diff -rN -c linuxwacom-0.7.8-3/src/xdrv/wcmISDV4.c linuxwacom-0.7.8-3-patched/src/xdrv/wcmISDV4.c
*** linuxwacom-0.7.8-3/src/xdrv/wcmISDV4.c 2007-08-15 01:12:39.000000000 +0200
--- linuxwacom-0.7.8-3-patched/src/xdrv/wcmISDV4.c 2008-01-09 02:54:11.000000000 +0100
***************
*** 231,236 ****
--- 231,263 ----
return n;
else
{
+
+ /* handle TC1100 stylus buttons */
+ if ((data[0] == 0xC1) && ((data[1] & 0xF0) == 0))
+ {
+ DBG(2, priv->debugLevel, ErrorF("isdv4Parse Tablet Button %s\n",
+ data[1] == 0x1 ? "rotate" : data[1] == 0x2 ? "journal"
+ : data[1] == 0x4 ? "keyboard" : "unknown" ));
+
+ /* do not reset relative values here */
+ ds = &common->wcmChannel[0].work;
+
+ /* first send the tablet button press event */
+ ds->proximity = 1;
+ ds->buttons = ((int)data[1]) << 29;
+ ds->pressure = common->wcmMaxZ;
+ ds->device_id = STYLUS_DEVICE_ID;
+ ds->device_type = STYLUS_ID;
+ xf86WcmEvent(common, 0, ds);
+
+ /* then immediately after send the release event */
+ ds->buttons = 0;
+ ds->pressure = 0;
+ ds->proximity = 0;
+ xf86WcmEvent(common, 0, ds);
+ return common->wcmPktLength;
+ }
+
/* Coordinate data bit check */
if (data[0] & 0x40)
return common->wcmPktLength;