diff -Nru libevdev-1.5.8+dfsg/debian/changelog libevdev-1.5.8+dfsg/debian/changelog --- libevdev-1.5.8+dfsg/debian/changelog 2018-01-29 16:19:01.000000000 +0800 +++ libevdev-1.5.8+dfsg/debian/changelog 2020-11-30 15:52:29.000000000 +0800 @@ -1,3 +1,9 @@ +libevdev (1.5.8+dfsg-1ubuntu0.1) bionic; urgency=medium + + * Add libevdev_disable_property. + + -- Kai-Chuan Hsieh Mon, 30 Nov 2020 15:52:29 +0800 + libevdev (1.5.8+dfsg-1) unstable; urgency=medium * New upstream release. diff -Nru libevdev-1.5.8+dfsg/debian/patches/0001-Add-libevdev_disable_property.patch libevdev-1.5.8+dfsg/debian/patches/0001-Add-libevdev_disable_property.patch --- libevdev-1.5.8+dfsg/debian/patches/0001-Add-libevdev_disable_property.patch 1970-01-01 08:00:00.000000000 +0800 +++ libevdev-1.5.8+dfsg/debian/patches/0001-Add-libevdev_disable_property.patch 2020-11-30 15:52:29.000000000 +0800 @@ -0,0 +1,72 @@ +Add libevdev_disable_property + +Backport upstream commit: +https://gitlab.freedesktop.org/libevdev/libevdev/-/commit/4226c7801b4ea1b0c7d1eaac47ca24ece8f24809 + +--- a/libevdev/libevdev.c ++++ b/libevdev/libevdev.c +@@ -1209,6 +1209,16 @@ + } + + LIBEVDEV_EXPORT int ++libevdev_disable_property(struct libevdev *dev, unsigned int prop) ++{ ++ if (prop > INPUT_PROP_MAX) ++ return -1; ++ ++ clear_bit(dev->props, prop); ++ return 0; ++} ++ ++LIBEVDEV_EXPORT int + libevdev_has_event_type(const struct libevdev *dev, unsigned int type) + { + return type == EV_SYN ||(type <= EV_MAX && bit_is_set(dev->bits, type)); +--- a/libevdev/libevdev.h ++++ b/libevdev/libevdev.h +@@ -1378,6 +1378,16 @@ + int libevdev_enable_property(struct libevdev *dev, unsigned int prop); + + /** ++ * @ingroup kernel ++ * ++ * @param dev The evdev device ++ * @param prop The input property to disable, one of INPUT_PROP_... ++ * ++ * @return 0 on success or -1 on failure ++ */ ++int libevdev_disable_property(struct libevdev *dev, unsigned int prop); ++ ++/** + * @ingroup bits + * + * @param dev The evdev device, already initialized with libevdev_set_fd() +--- a/test/test-libevdev-has-event.c ++++ b/test/test-libevdev-has-event.c +@@ -305,6 +305,13 @@ + ck_assert_int_eq(libevdev_has_property(dev, INPUT_PROP_DIRECT), 0); + ck_assert_int_eq(libevdev_has_property(dev, INPUT_PROP_BUTTONPAD), 1); + ++ /* Test disabling the properties too */ ++ ck_assert_int_eq(libevdev_disable_property(dev, INPUT_PROP_MAX + 1), -1); ++ ck_assert_int_eq(libevdev_disable_property(dev, INPUT_PROP_DIRECT), 0); ++ ck_assert_int_eq(libevdev_disable_property(dev, INPUT_PROP_BUTTONPAD), 0); ++ ck_assert_int_eq(libevdev_has_property(dev, INPUT_PROP_DIRECT), 0); ++ ck_assert_int_eq(libevdev_has_property(dev, INPUT_PROP_BUTTONPAD), 0); ++ + uinput_device_free(uidev); + libevdev_free(dev); + } +--- a/libevdev/libevdev.sym ++++ b/libevdev/libevdev.sym +@@ -112,3 +112,10 @@ + local: + *; + } LIBEVDEV_1; ++ ++LIBEVDEV_1_4 { ++global: ++ libevdev_disable_property; ++local: ++ *; ++} LIBEVDEV_1_3; diff -Nru libevdev-1.5.8+dfsg/debian/patches/series libevdev-1.5.8+dfsg/debian/patches/series --- libevdev-1.5.8+dfsg/debian/patches/series 1970-01-01 08:00:00.000000000 +0800 +++ libevdev-1.5.8+dfsg/debian/patches/series 2020-11-30 15:43:03.000000000 +0800 @@ -0,0 +1 @@ +0001-Add-libevdev_disable_property.patch