dinput: Don't treat Stylus devices as joysticks.

Tablet/Stylus devices have a js* entry which we are
treating as a joystick.  Any testbox VM that is configured
with a tablet is currently failing the joystick tests.

Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
stable
Alistair Leslie-Hughes 2019-10-09 08:14:46 +00:00 committed by Alexandre Julliard
parent 85ffc36b5e
commit db07ff83b3
1 changed files with 11 additions and 0 deletions

View File

@ -168,6 +168,7 @@ static INT find_joystick_devices(void)
struct JoyDev joydev, *new_joydevs;
BYTE axes_map[ABS_MAX + 1];
SHORT btn_map[KEY_MAX - BTN_MISC + 1];
BOOL is_stylus = FALSE;
snprintf(joydev.device, sizeof(joydev.device), "%s%d", JOYDEV_NEW, i);
if ((fd = open(joydev.device, O_RDONLY)) == -1)
@ -241,12 +242,22 @@ static INT find_joystick_devices(void)
case BTN_DEAD:
joydev.is_joystick = TRUE;
break;
case BTN_STYLUS:
is_stylus = TRUE;
break;
default:
break;
}
}
}
if(is_stylus)
{
TRACE("Stylus detected. Skipping\n");
close(fd);
continue;
}
if (ioctl(fd, JSIOCGAXMAP, axes_map) < 0)
{
WARN("ioctl(%s,JSIOCGAXMAP) failed: %s\n", joydev.device, strerror(errno));