return 0;
}
+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)
{
*/
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
*
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);
}