From: JengHyun Kang Date: Fri, 9 Dec 2016 02:51:58 +0000 (+0900) Subject: Ignore joystick devices if LIBINPUT_IGNORE_JOYSTICK env is 1 X-Git-Tag: submit/tizen/20220208.100129~39 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d9ef13533bd1e87b34eedcd0f9d67cc230594681;p=platform%2Fupstream%2Flibinput.git Ignore joystick devices if LIBINPUT_IGNORE_JOYSTICK env is 1 Change-Id: I56d9cc833acad212e3d8071a79adf27bc29c19ca --- diff --git a/src/evdev.c b/src/evdev.c index b855f0cc..d603f5d7 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -1826,6 +1826,7 @@ evdev_configure_device(struct evdev_device *device) enum evdev_device_udev_tags udev_tags; unsigned int tablet_tags; struct evdev_dispatch *dispatch; + char *env; udev_tags = evdev_device_get_udev_tags(device, device->udev_device); @@ -1862,10 +1863,24 @@ evdev_configure_device(struct evdev_device *device) evdev_disable_accelerometer_axes(device); } - if (udev_tags == (EVDEV_UDEV_TAG_INPUT|EVDEV_UDEV_TAG_JOYSTICK)) { - evdev_log_info(device, - "device is a joystick, ignoring\n"); - return NULL; + /* libwacom *adds* TABLET, TOUCHPAD but leaves JOYSTICK in place, so + make sure we only ignore real joystick devices */ + if (udev_tags & EVDEV_UDEV_TAG_JOYSTICK) { + env = getenv("LIBINPUT_IGNORE_JOYSTICK"); + if (env && atoi(env) == 1) { + log_info(libinput, + "input device '%s', %s have joystick, ignoring\n", + device->devname, devnode); + return -1; + } + else { + if ((udev_tags & EVDEV_UDEV_TAG_JOYSTICK) == udev_tags) { + log_info(libinput, + "input device '%s', %s is a joystick, ignoring\n", + device->devname, devnode); + return -1; + } + } } if (evdev_reject_device(device)) {