summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--GPL62
-rw-r--r--README21
-rw-r--r--configure.in5
-rw-r--r--src/2.6.10/wacom.c4
-rw-r--r--src/2.6.16/wacom_wac.c8
-rwxr-xr-xsrc/2.6.19/wacom_wac.c125
-rwxr-xr-xsrc/2.6.28/Makefile.in2
-rw-r--r--src/2.6.28/wacom_sys.c2
-rw-r--r--src/2.6.9/wacom.c4
-rwxr-xr-xsrc/include/Xwacom.h2
-rwxr-xr-xsrc/wacomxi/wacomcpl-exec5
-rwxr-xr-xsrc/xdrv/Makefile.am3
-rwxr-xr-xsrc/xdrv/wcmCommon.c21
-rwxr-xr-xsrc/xdrv/wcmConfig.c4
-rwxr-xr-xsrc/xdrv/wcmUSB.c15
-rw-r--r--src/xdrv/wcmXCommand.c10
-rwxr-xr-xsrc/xdrv/xf86Wacom.h1
18 files changed, 145 insertions, 157 deletions
diff --git a/ChangeLog b/ChangeLog
index 19c6f7d..d6e74a5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2009-04-23 Ping Cheng <pingc@wacom.com>
+ * Updated README
+ * Updated GPL to version 2
+ * Updated wacom_wac.c
+ * Brought configure.in and inlcude files in-sync with Fedora 10/11
+ * Fixed a few button and in-prox/out-prox issues
+ * Label 0.8.3-3
+
2009-04-03 Ping Cheng <pingc@wacom.com>
* Support kernels 2.6.28 and 2.6.29
* Added 10-linuxwacom.fdi from Peter Hutterer
diff --git a/GPL b/GPL
index d60c31a..c7aea18 100644
--- a/GPL
+++ b/GPL
@@ -2,7 +2,7 @@
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ 675 Mass Ave, Cambridge, MA 02139, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -278,63 +278,3 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) year name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/README b/README
index bd7beb1..e85c974 100644
--- a/README
+++ b/README
@@ -1,12 +1,21 @@
README
-April 03, 2009
+April 23, 2009
==============================================================================
-Most end users would probably only need to update the Wacom X driver and the
-/etc/X11/xorg.conf file to use the rich features that Wacom tablets offer.
-The steps could be as simple as:
+Most end users would probably only need to update the /etc/X11/xorg.conf file
+and sometime probably the Wacom X driver as well to use the rich features that
+Wacom tablets offer. The steps could be as simple as:
+
+ $ su
+ # cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak
+ # gedit /etc/X11/xorg.conf
+
+then follow the step listed at http://linuxwacom.sourceforge.net/index.php/howto/x11
+or "man wacom" if you don't have network access to add sections for Wacom device.
+
+If by some reason your distribution doesn't have include Wacom driver or you want to
+to use the newer release, you can download the package then
-download the package then
$ bunzip2 linuxwacom.tar.bz2
$ tar xvf linuxwacom.tar
$ cd linuxwacom/prebuilt
@@ -14,8 +23,6 @@ download the package then
# yum remove linuxwacom
# ./uninstall
# ./install
- # cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak
- # gedit /etc/X11/xorg.conf
# reboot
==============================================================================
diff --git a/configure.in b/configure.in
index 578520a..e8799a0 100644
--- a/configure.in
+++ b/configure.in
@@ -577,6 +577,11 @@ if test -f $WCM_XLIB_DIR/libxf86config.a -o -f $WCM_XLIB_DIR/libxf86config.so; t
fi
fi
+if test "$WCM_ENV_XFREE86" != yes; then
+ PKG_CHECK_MODULES(XORG, [xorg-server])
+ AC_SUBST([XORG_CFLAGS])
+fi
+
# Define X_CFLAGS, X_LIBS, X_EXTRA_LIBS and X_PRELIBS as required if X
# is found, else defines X_DISPLAY_MISSING. We need at least X_CFLAGS.
AC_PATH_XTRA
diff --git a/src/2.6.10/wacom.c b/src/2.6.10/wacom.c
index 3a35c5e..e105ecf 100644
--- a/src/2.6.10/wacom.c
+++ b/src/2.6.10/wacom.c
@@ -635,6 +635,8 @@ static int wacom_intuos_inout(struct urb *urb)
input_report_abs(dev, ABS_X, 0);
input_report_abs(dev, ABS_Y, 0);
input_report_abs(dev, ABS_DISTANCE, 0);
+ input_report_abs(dev, ABS_TILT_X, 0);
+ input_report_abs(dev, ABS_TILT_Y, 0);
if (wacom->tool[idx] >= BTN_TOOL_MOUSE) {
input_report_key(dev, BTN_LEFT, 0);
input_report_key(dev, BTN_MIDDLE, 0);
@@ -645,8 +647,6 @@ static int wacom_intuos_inout(struct urb *urb)
input_report_abs(dev, ABS_RZ, 0);
} else {
input_report_abs(dev, ABS_PRESSURE, 0);
- input_report_abs(dev, ABS_TILT_X, 0);
- input_report_abs(dev, ABS_TILT_Y, 0);
input_report_key(dev, BTN_STYLUS, 0);
input_report_key(dev, BTN_STYLUS2, 0);
input_report_key(dev, BTN_TOUCH, 0);
diff --git a/src/2.6.16/wacom_wac.c b/src/2.6.16/wacom_wac.c
index 4ca672b..20e0ee8 100644
--- a/src/2.6.16/wacom_wac.c
+++ b/src/2.6.16/wacom_wac.c
@@ -363,6 +363,9 @@ static int wacom_intuos_inout(struct wacom_wac *wacom, void *wcombo)
/* Exit report */
if ((data[1] & 0xfe) == 0x80) {
+ /* reset all states otherwise we lose the initial states
+ * when in-prox next time
+ */
wacom_report_abs(wcombo, ABS_X, 0);
wacom_report_abs(wcombo, ABS_Y, 0);
wacom_report_abs(wcombo, ABS_DISTANCE, 0);
@@ -377,13 +380,13 @@ static int wacom_intuos_inout(struct wacom_wac *wacom, void *wcombo)
} else {
wacom_report_abs(wcombo, ABS_PRESSURE, 0);
wacom_report_key(wcombo, BTN_TOUCH, 0);
- wacom_report_abs(wcombo, ABS_TILT_X, 0);
- wacom_report_abs(wcombo, ABS_TILT_Y, 0);
wacom_report_key(wcombo, BTN_STYLUS, 0);
wacom_report_key(wcombo, BTN_STYLUS2, 0);
wacom_report_abs(wcombo, ABS_WHEEL, 0);
wacom_report_abs(wcombo, ABS_Z, 0);
}
+ wacom_report_abs(wcombo, ABS_TILT_X, 0);
+ wacom_report_abs(wcombo, ABS_TILT_Y, 0);
wacom_report_key(wcombo, wacom->tool[idx], 0);
wacom_report_abs(wcombo, ABS_MISC, 0); /* reset tool id */
wacom_input_event(wcombo, EV_MSC, MSC_SERIAL, wacom->serial[idx]);
@@ -646,6 +649,7 @@ int wacom_tpc_irq (struct wacom_wac *wacom, void *wcombo)
}
} else if (touchOut || !prox) { /* force touch out-prox */
wacom_report_abs(wcombo, ABS_MISC, TOUCH_DEVICE_ID);
+ wacom_report_key(wcombo, wacom->tool[1], 0);
wacom_report_key(wcombo, BTN_TOUCH, 0);
touchOut = 0;
touchInProx = 1;
diff --git a/src/2.6.19/wacom_wac.c b/src/2.6.19/wacom_wac.c
index a1cf9e1..8cfd62c 100755
--- a/src/2.6.19/wacom_wac.c
+++ b/src/2.6.19/wacom_wac.c
@@ -370,13 +370,13 @@ static int wacom_intuos_inout(struct wacom_wac *wacom, void *wcombo)
} else {
wacom_report_abs(wcombo, ABS_PRESSURE, 0);
wacom_report_key(wcombo, BTN_TOUCH, 0);
- wacom_report_abs(wcombo, ABS_TILT_X, 0);
- wacom_report_abs(wcombo, ABS_TILT_Y, 0);
wacom_report_key(wcombo, BTN_STYLUS, 0);
wacom_report_key(wcombo, BTN_STYLUS2, 0);
wacom_report_abs(wcombo, ABS_WHEEL, 0);
wacom_report_abs(wcombo, ABS_Z, 0);
}
+ wacom_report_abs(wcombo, ABS_TILT_X, 0);
+ wacom_report_abs(wcombo, ABS_TILT_Y, 0);
wacom_report_key(wcombo, wacom->tool[idx], 0);
wacom_report_abs(wcombo, ABS_MISC, 0); /* reset tool id */
wacom_input_event(wcombo, EV_MSC, MSC_SERIAL, wacom->serial[idx]);
@@ -638,6 +638,7 @@ int wacom_tpc_irq(struct wacom_wac *wacom, void *wcombo)
}
} else if (touchOut || !prox) { /* force touch out-prox */
wacom_report_abs(wcombo, ABS_MISC, TOUCH_DEVICE_ID);
+ wacom_report_key(wcombo, wacom->tool[1], 0);
wacom_report_key(wcombo, BTN_TOUCH, 0);
touchOut = 0;
touchInProx = 1;
@@ -787,65 +788,66 @@ void wacom_init_input_dev(struct input_dev *input_dev, struct wacom_wac *wacom_w
}
static struct wacom_features wacom_features[] = {
- { "Wacom Penpartner", 7, 5040, 3780, 255, 0, PENPARTNER },
- { "Wacom Graphire", 8, 10206, 7422, 511, 63, GRAPHIRE },
- { "Wacom Graphire2 4x5", 8, 10206, 7422, 511, 63, GRAPHIRE },
- { "Wacom Graphire2 5x7", 8, 13918, 10206, 511, 63, GRAPHIRE },
- { "Wacom Graphire3", 8, 10208, 7424, 511, 63, GRAPHIRE },
- { "Wacom Graphire3 6x8", 8, 16704, 12064, 511, 63, GRAPHIRE },
- { "Wacom Graphire4 4x5", 8, 10208, 7424, 511, 63, WACOM_G4 },
- { "Wacom Graphire4 6x8", 8, 16704, 12064, 511, 63, WACOM_G4 },
- { "Wacom BambooFun 4x5", 9, 14760, 9225, 511, 63, WACOM_MO },
- { "Wacom BambooFun 6x8", 9, 21648, 13530, 511, 63, WACOM_MO },
- { "Wacom Bamboo1 Medium",8, 16704, 12064, 511, 63, GRAPHIRE },
- { "Wacom Volito", 8, 5104, 3712, 511, 63, GRAPHIRE },
- { "Wacom PenStation2", 8, 3250, 2320, 255, 63, GRAPHIRE },
- { "Wacom Volito2 4x5", 8, 5104, 3712, 511, 63, GRAPHIRE },
- { "Wacom Volito2 2x3", 8, 3248, 2320, 511, 63, GRAPHIRE },
- { "Wacom PenPartner2", 8, 3250, 2320, 511, 63, GRAPHIRE },
- { "Wacom Bamboo", 9, 14760, 9225, 511, 63, WACOM_MO },
- { "Wacom Bamboo1", 8, 5104, 3712, 511, 63, GRAPHIRE },
- { "Wacom Intuos 4x5", 10, 12700, 10600, 1023, 31, INTUOS },
- { "Wacom Intuos 6x8", 10, 20320, 16240, 1023, 31, INTUOS },
- { "Wacom Intuos 9x12", 10, 30480, 24060, 1023, 31, INTUOS },
- { "Wacom Intuos 12x12", 10, 30480, 31680, 1023, 31, INTUOS },
- { "Wacom Intuos 12x18", 10, 45720, 31680, 1023, 31, INTUOS },
- { "Wacom PL400", 8, 5408, 4056, 255, 0, PL },
- { "Wacom PL500", 8, 6144, 4608, 255, 0, PL },
- { "Wacom PL600", 8, 6126, 4604, 255, 0, PL },
- { "Wacom PL600SX", 8, 6260, 5016, 255, 0, PL },
- { "Wacom PL550", 8, 6144, 4608, 511, 0, PL },
- { "Wacom PL800", 8, 7220, 5780, 511, 0, PL },
- { "Wacom PL700", 8, 6758, 5406, 511, 0, PL },
- { "Wacom PL510", 8, 6282, 4762, 511, 0, PL },
- { "Wacom DTU710", 8, 34080, 27660, 511, 0, PL },
- { "Wacom DTF521", 8, 6282, 4762, 511, 0, PL },
- { "Wacom DTF720", 8, 6858, 5506, 511, 0, PL },
- { "Wacom DTU1931", 8, 37832, 30305, 511, 0, PL },
- { "Wacom Cintiq Partner",8, 20480, 15360, 511, 0, PTU },
- { "Wacom Intuos2 4x5", 10, 12700, 10600, 1023, 31, INTUOS },
- { "Wacom Intuos2 6x8", 10, 20320, 16240, 1023, 31, INTUOS },
- { "Wacom Intuos2 9x12", 10, 30480, 24060, 1023, 31, INTUOS },
- { "Wacom Intuos2 12x12", 10, 30480, 31680, 1023, 31, INTUOS },
- { "Wacom Intuos2 12x18", 10, 45720, 31680, 1023, 31, INTUOS },
- { "Wacom Intuos3 4x5", 10, 25400, 20320, 1023, 63, INTUOS3S },
- { "Wacom Intuos3 6x8", 10, 40640, 30480, 1023, 63, INTUOS3 },
- { "Wacom Intuos3 9x12", 10, 60960, 45720, 1023, 63, INTUOS3 },
- { "Wacom Intuos3 12x12", 10, 60960, 60960, 1023, 63, INTUOS3L },
- { "Wacom Intuos3 12x19", 10, 97536, 60960, 1023, 63, INTUOS3L },
- { "Wacom Intuos3 6x11", 10, 54204, 31750, 1023, 63, INTUOS3 },
- { "Wacom Intuos3 4x6", 10, 31496, 19685, 1023, 63, INTUOS3S },
- { "Wacom Intuos4 4x6", 10, 31496, 19685, 2047, 63, INTUOS4S },
- { "Wacom Intuos4 6x9", 10, 44704, 27940, 2047, 63, INTUOS4 },
- { "Wacom Intuos4 8x13", 10, 65024, 40640, 2047, 63, INTUOS4L },
- { "Wacom Intuos4 12x19", 10, 97536, 60960, 2047, 63, INTUOS4L },
- { "Wacom Cintiq 21UX", 10, 87200, 65600, 1023, 63, CINTIQ },
- { "Wacom Cintiq 20WSX", 10, 86680, 54180, 1023, 63, WACOM_BEE },
- { "Wacom Cintiq 12WX", 10, 53020, 33440, 1023, 63, WACOM_BEE },
- { "Wacom ISDv4 90", 8, 26202, 16325, 255, 0, TABLETPC },
- { "Wacom ISDv4 93", 8, 26202, 16325, 255, 0, TABLETPC },
- { "Wacom ISDv4 9A", 8, 26202, 16325, 255, 0, TABLETPC },
- { "Wacom Intuos2 6x8", 10, 20320, 16240, 1023, 31, INTUOS },
+ { "Wacom Penpartner", 7, 5040, 3780, 255, 0, PENPARTNER },
+ { "Wacom Graphire", 8, 10206, 7422, 511, 63, GRAPHIRE },
+ { "Wacom Graphire2 4x5", 8, 10206, 7422, 511, 63, GRAPHIRE },
+ { "Wacom Graphire2 5x7", 8, 13918, 10206, 511, 63, GRAPHIRE },
+ { "Wacom Graphire3", 8, 10208, 7424, 511, 63, GRAPHIRE },
+ { "Wacom Graphire3 6x8", 8, 16704, 12064, 511, 63, GRAPHIRE },
+ { "Wacom Graphire4 4x5", 8, 10208, 7424, 511, 63, WACOM_G4 },
+ { "Wacom Graphire4 6x8", 8, 16704, 12064, 511, 63, WACOM_G4 },
+ { "Wacom BambooFun 4x5", 9, 14760, 9225, 511, 63, WACOM_MO },
+ { "Wacom BambooFun 6x8", 9, 21648, 13530, 511, 63, WACOM_MO },
+ { "Wacom Bamboo1 Medium", 8, 16704, 12064, 511, 63, GRAPHIRE },
+ { "Wacom Volito", 8, 5104, 3712, 511, 63, GRAPHIRE },
+ { "Wacom PenStation2", 8, 3250, 2320, 255, 63, GRAPHIRE },
+ { "Wacom Volito2 4x5", 8, 5104, 3712, 511, 63, GRAPHIRE },
+ { "Wacom Volito2 2x3", 8, 3248, 2320, 511, 63, GRAPHIRE },
+ { "Wacom PenPartner2", 8, 3250, 2320, 511, 63, GRAPHIRE },
+ { "Wacom Bamboo", 9, 14760, 9225, 511, 63, WACOM_MO },
+ { "Wacom Bamboo1", 8, 5104, 3712, 511, 63, GRAPHIRE },
+ { "Wacom Intuos 4x5", 10, 12700, 10600, 1023, 31, INTUOS },
+ { "Wacom Intuos 6x8", 10, 20320, 16240, 1023, 31, INTUOS },
+ { "Wacom Intuos 9x12", 10, 30480, 24060, 1023, 31, INTUOS },
+ { "Wacom Intuos 12x12", 10, 30480, 31680, 1023, 31, INTUOS },
+ { "Wacom Intuos 12x18", 10, 45720, 31680, 1023, 31, INTUOS },
+ { "Wacom PL400", 8, 5408, 4056, 255, 0, PL },
+ { "Wacom PL500", 8, 6144, 4608, 255, 0, PL },
+ { "Wacom PL600", 8, 6126, 4604, 255, 0, PL },
+ { "Wacom PL600SX", 8, 6260, 5016, 255, 0, PL },
+ { "Wacom PL550", 8, 6144, 4608, 511, 0, PL },
+ { "Wacom PL800", 8, 7220, 5780, 511, 0, PL },
+ { "Wacom PL700", 8, 6758, 5406, 511, 0, PL },
+ { "Wacom PL510", 8, 6282, 4762, 511, 0, PL },
+ { "Wacom DTU710", 8, 34080, 27660, 511, 0, PL },
+ { "Wacom DTF521", 8, 6282, 4762, 511, 0, PL },
+ { "Wacom DTF720", 8, 6858, 5506, 511, 0, PL },
+ { "Wacom DTU1931", 8, 37832, 30305, 511, 0, PL },
+ { "Wacom Cintiq Partner", 8, 20480, 15360, 511, 0, PTU },
+ { "Wacom Intuos2 4x5", 10, 12700, 10600, 1023, 31, INTUOS },
+ { "Wacom Intuos2 6x8", 10, 20320, 16240, 1023, 31, INTUOS },
+ { "Wacom Intuos2 9x12", 10, 30480, 24060, 1023, 31, INTUOS },
+ { "Wacom Intuos2 12x12", 10, 30480, 31680, 1023, 31, INTUOS },
+ { "Wacom Intuos2 12x18", 10, 45720, 31680, 1023, 31, INTUOS },
+ { "Wacom Intuos3 4x5", 10, 25400, 20320, 1023, 63, INTUOS3S },
+ { "Wacom Intuos3 6x8", 10, 40640, 30480, 1023, 63, INTUOS3 },
+ { "Wacom Intuos3 9x12", 10, 60960, 45720, 1023, 63, INTUOS3 },
+ { "Wacom Intuos3 12x12", 10, 60960, 60960, 1023, 63, INTUOS3L },
+ { "Wacom Intuos3 12x19", 10, 97536, 60960, 1023, 63, INTUOS3L },
+ { "Wacom Intuos3 6x11", 10, 54204, 31750, 1023, 63, INTUOS3 },
+ { "Wacom Intuos3 4x6", 10, 31496, 19685, 1023, 63, INTUOS3S },
+ { "Wacom Intuos4 4x6", 10, 31496, 19685, 2047, 63, INTUOS4S },
+ { "Wacom Intuos4 6x9", 10, 44704, 27940, 2047, 63, INTUOS4 },
+ { "Wacom Intuos4 8x13", 10, 65024, 40640, 2047, 63, INTUOS4L },
+ { "Wacom Intuos4 12x19", 10, 97536, 60960, 2047, 63, INTUOS4L },
+ { "Wacom Cintiq 21UX", 10, 87200, 65600, 1023, 63, CINTIQ },
+ { "Wacom Cintiq 20WSX", 10, 86680, 54180, 1023, 63, WACOM_BEE },
+ { "Wacom Cintiq 12WX", 10, 53020, 33440, 1023, 63, WACOM_BEE },
+ { "Wacom Graphire Bluetooth", 8, 10208, 7424, 511, 63, WACOM_G4 },
+ { "Wacom ISDv4 90", 8, 26202, 16325, 255, 0, TABLETPC },
+ { "Wacom ISDv4 93", 8, 26202, 16325, 255, 0, TABLETPC },
+ { "Wacom ISDv4 9A", 8, 26202, 16325, 255, 0, TABLETPC },
+ { "Wacom Intuos2 6x8", 10, 20320, 16240, 1023, 31, INTUOS },
{ }
};
@@ -905,6 +907,7 @@ static struct usb_device_id wacom_ids[] = {
{ USB_DEVICE(USB_VENDOR_ID_WACOM, 0x3F) },
{ USB_DEVICE(USB_VENDOR_ID_WACOM, 0xC5) },
{ USB_DEVICE(USB_VENDOR_ID_WACOM, 0xC6) },
+ { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x81) },
{ USB_DEVICE(USB_VENDOR_ID_WACOM, 0x90) },
{ USB_DEVICE(USB_VENDOR_ID_WACOM, 0x93) },
{ USB_DEVICE(USB_VENDOR_ID_WACOM, 0x9A) },
diff --git a/src/2.6.28/Makefile.in b/src/2.6.28/Makefile.in
index fb830e0..b00a819 100755
--- a/src/2.6.28/Makefile.in
+++ b/src/2.6.28/Makefile.in
@@ -24,8 +24,6 @@ export WCM_OPTION_WACOM
all:
# Copy Wacom specific code which is common to all kernel releases
ifeq ($(WCM_OPTION_WACOM),yes)
- cp -f ../2.6.19/wacom_wac.c .
- cp -f ../2.6.22/wacom_wac.h .
cp -f ../2.6.27/wacom.h .
endif
@echo ' Building linuxwacom drivers for 2.6 kernel.'
diff --git a/src/2.6.28/wacom_sys.c b/src/2.6.28/wacom_sys.c
index a9d5031..c60c576 100644
--- a/src/2.6.28/wacom_sys.c
+++ b/src/2.6.28/wacom_sys.c
@@ -491,7 +491,7 @@ static int wacom_probe(struct usb_interface *intf, const struct usb_device_id *i
* Ask the tablet to report tablet data if it is not a Tablet PC.
* Repeat until it succeeds
*/
- if (wacom_wac->features->type != TABLETPC) {
+ if ((wacom_wac->features->type != TABLETPC) && (wacom_wac->features->type != WACOM_GB)) {
do {
rep_data[0] = 2;
rep_data[1] = 2;
diff --git a/src/2.6.9/wacom.c b/src/2.6.9/wacom.c
index c0ba32c..7d3b00d 100644
--- a/src/2.6.9/wacom.c
+++ b/src/2.6.9/wacom.c
@@ -644,14 +644,14 @@ static int wacom_intuos_inout(struct urb *urb)
input_report_abs(dev, ABS_RZ, 0);
} else {
input_report_abs(dev, ABS_PRESSURE, 0);
- input_report_abs(dev, ABS_TILT_X, 0);
- input_report_abs(dev, ABS_TILT_Y, 0);
input_report_key(dev, BTN_STYLUS, 0);
input_report_key(dev, BTN_STYLUS2, 0);
input_report_key(dev, BTN_TOUCH, 0);
input_report_abs(dev, ABS_WHEEL, 0);
input_report_abs(dev, ABS_Z, 0);
}
+ input_report_abs(dev, ABS_TILT_X, 0);
+ input_report_abs(dev, ABS_TILT_Y, 0);
input_report_key(dev, wacom->tool[idx], 0);
input_report_abs(dev, ABS_MISC, 0); /* reset tool id */
input_event(dev, EV_MSC, MSC_SERIAL, wacom->serial[idx]);
diff --git a/src/include/Xwacom.h b/src/include/Xwacom.h
index 6618a49..33ff2cf 100755
--- a/src/include/Xwacom.h
+++ b/src/include/Xwacom.h
@@ -96,11 +96,11 @@
#define XWACOM_PARAM_TVRESOLUTION1 208
#define XWACOM_PARAM_COREEVENT 209
#define XWACOM_PARAM_THRESHOLD 210
+#define XWACOM_PARAM_TOOLSERIAL 211
#define XWACOM_PARAM_GETONLYPARAM 320
#define XWACOM_PARAM_TID 321
#define XWACOM_PARAM_TOOLID 322
-#define XWACOM_PARAM_TOOLSERIAL 323
#define XWACOM_PARAM_NUMSCREEN 350
#define XWACOM_PARAM_STOPX0 351
#define XWACOM_PARAM_STOPY0 352
diff --git a/src/wacomxi/wacomcpl-exec b/src/wacomxi/wacomcpl-exec
index c8cba71..439320b 100755
--- a/src/wacomxi/wacomcpl-exec
+++ b/src/wacomxi/wacomcpl-exec
@@ -1008,8 +1008,9 @@ proc addMenu { curb } {
set i 9
} else {
set bmenu [ tk_optionMenu $currentW.f.$curb db$curb $db(1) $db(2) \
- $db(3) $db(4) $db(5) $db($displayToggleB) $db($ignoreButton) ]
- set i 7
+ $db(3) $db(4) $db(5) $db($doubleClickB) $db($displayToggleB) \
+ $db($ignoreButton) ]
+ set i 8
}
set i [expr ($i+1)]
diff --git a/src/xdrv/Makefile.am b/src/xdrv/Makefile.am
index be4f2d4..0d451b1 100755
--- a/src/xdrv/Makefile.am
+++ b/src/xdrv/Makefile.am
@@ -15,7 +15,8 @@ EXTRA_DIST = xf86Wacom.c wcmXCommand.c xf86Wacom.h \
../include/Xwacom.h wcmTilt2Rotation.c
if WCM_ENV_XORGSDK
-DRIVER_INCLUDES = -I../include -I$(WCM_XORGSDK_DIR) $(X_CFLAGS)
+DRIVER_INCLUDES = -I../include -I$(WCM_XORGSDK_DIR) $(X_CFLAGS) @XORG_CFLAGS@
+
endif
if WCM_ENV_XFREE86
diff --git a/src/xdrv/wcmCommon.c b/src/xdrv/wcmCommon.c
index b031338..d8b4d79 100755
--- a/src/xdrv/wcmCommon.c
+++ b/src/xdrv/wcmCommon.c
@@ -521,7 +521,7 @@ static void sendAButton(LocalDevicePtr local, int button, int mask,
button, mask, priv->button[button],
local->name, (priv->button[button] & AC_CORE) ? "yes" : "no"));
- switch (button & AC_TYPE)
+ switch (priv->button[button] & AC_TYPE)
{
case AC_BUTTON:
xf86PostButtonEvent(local->dev, is_absolute, priv->button[button] & AC_CODE,
@@ -575,7 +575,6 @@ static void sendAButton(LocalDevicePtr local, int button, int mask,
/* Left button down */
xf86PostButtonEvent(local->dev, is_absolute,
1,1,0,naxes, rx,ry,rz,v3,v4,v5);
-
/* Left button up */
xf86PostButtonEvent(local->dev, is_absolute,
1,0,0,naxes,rx,ry,rz,v3,v4,v5);
@@ -746,6 +745,7 @@ static void sendCommonEvents(LocalDevicePtr local, const WacomDeviceState* ds, i
WacomDevicePtr priv = (WacomDevicePtr) local->private;
int buttons = ds->buttons;
+ /* send button events when state changed or first time in prox and button unpresses */
if (priv->oldButtons != buttons || (!priv->oldProximity && !buttons))
xf86WcmSendButtons(local,buttons,x,y,z,v3,v4,v5);
@@ -1528,7 +1528,7 @@ static void commonDispatchDevice(WacomCommonPtr common, unsigned int channel,
int tol = common->wcmMaxZ / 250;
if (strstr(common->wcmModel->name, "Intuos4"))
tol = common->wcmMaxZ / 125;
- if (filtered.pressure < common->wcmThreshold + tol)
+ if (filtered.pressure < common->wcmThreshold - tol)
filtered.buttons &= ~button;
}
/* transform pressure */
@@ -1543,7 +1543,7 @@ static void commonDispatchDevice(WacomCommonPtr common, unsigned int channel,
(5 - common->wcmCapacity))
filtered.buttons |= button;
}
- else if (!(priv->flags & ABSOLUTE_FLAG) && !priv->hardProx)
+ else if (IsCursor(priv) && !priv->hardProx)
{
/* initial current max distance */
if (strstr(common->wcmModel->name, "Intuos"))
@@ -1613,7 +1613,7 @@ static void commonDispatchDevice(WacomCommonPtr common, unsigned int channel,
double delty = filtered.y - priv->oldY;
deltx *= priv->factorY*priv->speed;
delty *= priv->factorY*priv->speed;
-
+
if (ABS(deltx)<1 && ABS(delty)<1)
{
/* don't move the cursor */
@@ -1624,7 +1624,11 @@ static void commonDispatchDevice(WacomCommonPtr common, unsigned int channel,
filtered.y = priv->oldY;
}
else /* no other events to send */
+ {
+ DBG(10, common->debugLevel, ErrorF(
+ "Ignore non-movement relative data \n"));
return;
+ }
}
else
{
@@ -1637,10 +1641,11 @@ static void commonDispatchDevice(WacomCommonPtr common, unsigned int channel,
}
}
- /* force out-prox when distance is outside wcmCursorProxoutDist. */
- if (!(priv->flags & ABSOLUTE_FLAG))
+ /* force out-prox when distance is outside wcmCursorProxoutDist for pucks */
+ if (IsCursor(priv))
{
- if (strstr(common->wcmModel->name, "Intuos"))
+ /* force out-prox when distance is outside wcmCursorProxoutDist. */
+ if (common->wcmProtocolLevel == 5)
{
if (common->wcmMaxCursorDist > filtered.distance)
common->wcmMaxCursorDist = filtered.distance;
diff --git a/src/xdrv/wcmConfig.c b/src/xdrv/wcmConfig.c
index 213d9b6..2db7332 100755
--- a/src/xdrv/wcmConfig.c
+++ b/src/xdrv/wcmConfig.c
@@ -217,8 +217,8 @@ LocalDevicePtr xf86WcmAllocate(char* name, int flag)
common->wcmMaxCursorDist = 0; /* Max distance received so far */
common->wcmCursorProxoutDist = 0;
/* Max mouse distance for proxy-out max/256 units */
- common->wcmCursorProxoutDistDefault = PROXOUT_GRAPHIRE_DISTANCE;
- /* default to Graphire */
+ common->wcmCursorProxoutDistDefault = PROXOUT_INTUOS_DISTANCE;
+ /* default to Intuos */
common->wcmSuppress = DEFAULT_SUPPRESS;
/* transmit position if increment is superior */
common->wcmRawSample = DEFAULT_SAMPLES;
diff --git a/src/xdrv/wcmUSB.c b/src/xdrv/wcmUSB.c
index 16acd12..725cd46 100755
--- a/src/xdrv/wcmUSB.c
+++ b/src/xdrv/wcmUSB.c
@@ -248,7 +248,7 @@ static void usbParseChannel(LocalDevicePtr local, int channel, int serial);
static WacomModel usbIntuos =
{
- "USB Intuos",
+ "USB Intuos1",
usbInitProtocol5,
NULL, /* resolution not queried */
usbWcmGetRanges,
@@ -931,13 +931,20 @@ static void usbParseEvent(LocalDevicePtr local,
}
}
}
+ else /* ignore non-serial number tools for V5 models */
+ {
+ common->wcmLastToolSerial = 0;
+ common->wcmEventCnt = 0;
+ return;
+ }
/* fresh out of channels */
if (channel < 0)
{
/* This should never happen in normal use.
- * So something was wrong. Let's start over again.
- * Force prox-out for all channels.
+ * User is probably using more than one tools on the tablet.
+ * Or moving the tablet around while using a tool.
+ * Let's start over again. Force prox-out for all channels.
*/
for (i=0; i<MAX_CHANNELS; ++i)
{
@@ -951,8 +958,6 @@ static void usbParseEvent(LocalDevicePtr local,
ErrorF("usbParse (%s with serial number: %u) at %d: Exceeded channel count; "
"ignoring the events.\n", local->name, common->wcmLastToolSerial,
(int)GetTimeInMillis());
- return;
-
}
else
usbParseChannel(local,channel,common->wcmLastToolSerial);
diff --git a/src/xdrv/wcmXCommand.c b/src/xdrv/wcmXCommand.c
index ebfa72d..e9d64a6 100644
--- a/src/xdrv/wcmXCommand.c
+++ b/src/xdrv/wcmXCommand.c
@@ -23,6 +23,7 @@
* 2008-05-14 0.2 - Rotate through routine xf86WcmRotateTablet
* 2008-06-26 0.3 - Added Capacity
* 2009-03-16 0.4 - Added leftOF for TwinView
+ * 2009-04-21 0.5 - Added set serial option
*/
@@ -331,6 +332,15 @@ static int xf86WcmSetParam(LocalDevicePtr local, int param, int value)
xf86ReplaceIntOption(local->options, "Threshold",
common->wcmThreshold);
break;
+ case XWACOM_PARAM_TOOLSERIAL:
+ if (common->wcmProtocolLevel != 5)
+ return BadValue;
+ if (priv->serial != value)
+ {
+ priv->serial = value;
+ xf86ReplaceIntOption(local->options, "Serial", priv->serial);
+ }
+ break;
case XWACOM_PARAM_XYDEFAULT:
xf86WcmSetParam (local, XWACOM_PARAM_TOPX, 0);
xf86WcmSetParam (local, XWACOM_PARAM_TOPY, 0);
diff --git a/src/xdrv/xf86Wacom.h b/src/xdrv/xf86Wacom.h
index 1e6bffd..742f638 100755
--- a/src/xdrv/xf86Wacom.h
+++ b/src/xdrv/xf86Wacom.h
@@ -64,6 +64,7 @@
#endif
#include <misc.h>
+#define inline __inline__
#include <xf86.h>
#define NEED_XF86_TYPES
#if !defined(DGUX)