← Back to team overview

ubuntu-x-swat team mailing list archive

[Bug 379313] [NEW] Handling NextWindow Touchscreen (multitouch)

 

Public bug reported:

Binary package hint: xserver-xorg-input-evdev

Ubuntu 9.04/8.10 and probably other.

The NextWindow touch screen is used on the HP TouchSmart systems however
doesn't work out of the box on 8.10 or 9.04.

Firstly it is allocated to a synaptic touchpad driver initially which is
wrong, but can be overcome with the appropriate HAL fdi to change to
evdev.

Secondly (and this is a most likely a problem of either the hardware or
X), it reports X, Y values using ABS_RX, ABS_Z rather than the expected
ABS_X, ABS_Y. The evtouch driver will work because it accepts these as
alternatives.

Lastly, because the system is multi-touch aware it reports to the
xserver that it has buttons. This causes it to be misclassified by evdev
as a touchpad rather than a touchscreen.

The following patch fixes the problem for me but is obviously not a
general solution. This is against packaged version 1:2.1.1-1ubuntu4:

--- src/evdev.c.orig	2010-05-22 16:08:14.000000000 +1000
+++ src/evdev.c	2009-05-22 16:09:30.000000000 +1000
@@ -382,10 +382,12 @@
 
 	case EV_ABS:
 	    switch (ev.code) {
+            case ABS_Z:
 	    case ABS_X:
 		pEvdev->abs_x = value;
 		abs = 1;
 		break;
+            case ABS_RX:
 	    case ABS_Y:
 		pEvdev->abs_y = value;
 		abs = 1;
@@ -1368,11 +1370,11 @@
         xf86Msg(X_INFO, "%s: Found x and y absolute axes\n", pInfo->name);
 	pEvdev->flags |= EVDEV_ABSOLUTE_EVENTS;
 	if (TestBit(BTN_TOUCH, key_bitmask)) {
-            if (num_buttons) {
+/*          if (num_buttons) {
                 xf86Msg(X_INFO, "%s: Found absolute touchpad\n", pInfo->name);
                 pEvdev->flags |= EVDEV_TOUCHPAD;
                 pEvdev->old_x = pEvdev->old_y = -1;
-            } else {
+            } else */ {
                 xf86Msg(X_INFO, "%s: Found absolute touchscreen\n", pInfo->name);
                 pEvdev->flags |= EVDEV_TOUCHSCREEN;
                 pEvdev->flags |= EVDEV_BUTTON_EVENTS;

ProblemType: Bug
Architecture: amd64
DistroRelease: Ubuntu 9.04
NonfreeKernelModules: nvidia
Package: xserver-xorg-input-evdev 1:2.1.1-1ubuntu4 [modified: usr/lib/xorg/modules/input/evdev_drv.so]
ProcEnviron:
 LANG=en_AU.UTF-8
 SHELL=/bin/bash
ProcVersion: Linux version 2.6.28-11-generic (buildd@crested) (gcc version 4.3.3 (Ubuntu 4.3.3-5ubuntu4) ) #42-Ubuntu SMP Fri Apr 17 01:58:03 UTC 2009
SourcePackage: xserver-xorg-input-evdev
Uname: Linux 2.6.28-11-generic x86_64

** Affects: xserver-xorg-input-evdev (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: amd64 apport-bug

-- 
Handling NextWindow Touchscreen (multitouch)
https://bugs.launchpad.net/bugs/379313
You received this bug notification because you are a member of Ubuntu-X,
which is subscribed to xserver-xorg-input-evdev in ubuntu.



Follow ups

References