From: duna.oh Date: Tue, 12 Jul 2022 06:17:52 +0000 (+0900) Subject: evdev: A joystick could be ignored before opening input device X-Git-Tag: accepted/tizen/unified/20250205.095548~16 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=dcfd1e4667d0031ddaeb06135d16dde8e2e15b9f;p=platform%2Fupstream%2Flibinput.git evdev: A joystick could be ignored before opening input device add checking if the builtin property 'ID_INPUT_JOYSTICK' is set. Because 'LIBINPUT_IGNORE_DEVICE' is usually set by udev rule, it may not be determined until the udev rule is parsed. A joystick is not supported in libinput for now. Change-Id: I19cc67538dd1ccc6f1c6f2a2dccbb96d344d40ac --- diff --git a/src/evdev.c b/src/evdev.c index e9dfed86..4b74ba13 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -2428,6 +2428,7 @@ libevdev_log_func(const struct libevdev *evdev, #pragma GCC diagnostic pop } +#if 0 static bool udev_device_should_be_ignored(struct udev_device *udev_device) { @@ -2438,6 +2439,30 @@ udev_device_should_be_ignored(struct udev_device *udev_device) return value && !streq(value, "0"); } +#else // for TIZEN +static bool +udev_device_should_be_ignored(struct udev_device *udev_device) +{ + const char *value; + char *env; + + value = udev_device_get_property_value(udev_device, + "LIBINPUT_IGNORE_DEVICE"); + + if (value && !streq(value, "0")) return true; + + // for TIZEN, add checking if joystick should be ignored or not. + env = getenv("LIBINPUT_IGNORE_JOYSTICK"); + if (env && atoi(env) == 1) { + value = udev_device_get_property_value(udev_device, + "ID_INPUT_JOYSTICK"); + } + + if (value && !streq(value, "0")) return true; + + return false; +} +#endif struct evdev_device * evdev_device_create(struct libinput_seat *seat, @@ -2466,7 +2491,7 @@ evdev_device_create(struct libinput_seat *seat, } if (udev_device_should_be_ignored(udev_device)) { - log_debug(libinput, "%s: device is ignored\n", sysname); + log_info(libinput, "%s: device is ignored\n", sysname); goto err; }