From d58429d085cdf890d9362a30b36626ca419e5b5a Mon Sep 17 00:00:00 2001 From: Jeremy White Date: Sun, 23 Dec 2007 10:56:03 -0600 Subject: [PATCH] wintab32: Compute our physical device characteristics based on the first tablet device that looks like a stylus. Otherwise, we may be computing based on a mouse or cursor, and then come to incorrect values for our tilt and pressure settings. --- dlls/winex11.drv/wintab.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/dlls/winex11.drv/wintab.c b/dlls/winex11.drv/wintab.c index 7065cc826dc..9b863457665 100644 --- a/dlls/winex11.drv/wintab.c +++ b/dlls/winex11.drv/wintab.c @@ -528,7 +528,13 @@ void X11DRV_LoadTabletInfo(HWND hwnddefault) if (TRACE_ON(wintab32)) trace_axes(Val); - if (!axis_read_complete) + /* FIXME: This is imperfect; we compute our devices capabilities based upon the + ** first pen type device we find. However, a more correct implementation + ** would require acquiring a wide variety of tablets and running through + ** the various inputs to see what the values are. Odds are that a + ** more 'correct' algorithm would condense to this one anyway. + */ + if (!axis_read_complete && Val->num_axes >= 5 && cursor->TYPE == CSR_TYPE_PEN) { Axis = (XAxisInfoPtr) ((char *) Val + sizeof (XValuatorInfo));