From c4dbfe3893e779669a83ec0016c7a0e09751957a Mon Sep 17 00:00:00 2001 From: Philip Paeps Date: Sun, 8 Aug 2004 01:26:00 +0000 Subject: [PATCH] Assume a finger of regular width when no width value is reported by the touchpad (which happens when it has no extended capabilities). Spotted by: dhw Forgotten by: philip --- sys/dev/atkbdc/psm.c | 13 ++++++++++--- sys/isa/psm.c | 13 ++++++++++--- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/sys/dev/atkbdc/psm.c b/sys/dev/atkbdc/psm.c index 731653b2f7a..415cf74beca 100644 --- a/sys/dev/atkbdc/psm.c +++ b/sys/dev/atkbdc/psm.c @@ -2508,9 +2508,16 @@ psmsoftintr(void *arg) /* Pressure value. */ z = pb->ipacket[2]; - w = ((pb->ipacket[0] & 0x30) >> 2) | - ((pb->ipacket[0] & 0x04) >> 1) | - ((pb->ipacket[3] & 0x04) >> 2); + + /* Finger width value */ + if (sc->synhw.capExtended) { + w = ((pb->ipacket[0] & 0x30) >> 2) | + ((pb->ipacket[0] & 0x04) >> 1) | + ((pb->ipacket[3] & 0x04) >> 2); + } else { + /* Assume a finger of regular width */ + w = 4; + } /* Button presses */ ms.button = 0; diff --git a/sys/isa/psm.c b/sys/isa/psm.c index 731653b2f7a..415cf74beca 100644 --- a/sys/isa/psm.c +++ b/sys/isa/psm.c @@ -2508,9 +2508,16 @@ psmsoftintr(void *arg) /* Pressure value. */ z = pb->ipacket[2]; - w = ((pb->ipacket[0] & 0x30) >> 2) | - ((pb->ipacket[0] & 0x04) >> 1) | - ((pb->ipacket[3] & 0x04) >> 2); + + /* Finger width value */ + if (sc->synhw.capExtended) { + w = ((pb->ipacket[0] & 0x30) >> 2) | + ((pb->ipacket[0] & 0x04) >> 1) | + ((pb->ipacket[3] & 0x04) >> 2); + } else { + /* Assume a finger of regular width */ + w = 4; + } /* Button presses */ ms.button = 0;