libinput->refcount = 1;
list_init(&libinput->source_destroy_list);
list_init(&libinput->seat_list);
+ list_init(&libinput->device_group_list);
+ list_init(&libinput->tool_list);
if (libinput_timer_subsys_init(libinput) != 0) {
free(libinput->events);
struct libinput_event *event;
struct libinput_device *device, *next_device;
struct libinput_seat *seat, *next_seat;
+ struct libinput_tool *tool, *next_tool;
+ struct libinput_device_group *group, *next_group;
if (libinput == NULL)
return NULL;
libinput_seat_destroy(seat);
}
+ list_for_each_safe(group,
+ next_group,
+ &libinput->device_group_list,
+ link) {
+ libinput_device_group_destroy(group);
+ }
+
+ list_for_each_safe(tool, next_tool, &libinput->tool_list, link) {
+ libinput_tool_unref(tool);
+ }
+
libinput_timer_subsys_destroy(libinput);
libinput_drop_destroyed_sources(libinput);
close(libinput->epoll_fd);
libinput_event_touch_get_time_usec;
} LIBINPUT_0.20.0;
- } LIBINPUT_0.21.0;
+ LIBINPUT_1.1 {
+ libinput_device_config_accel_get_profile;
+ libinput_device_config_accel_get_profiles;
+ libinput_device_config_accel_get_default_profile;
+ libinput_device_config_accel_set_profile;
+ } LIBINPUT_0.21.0;
++
+/* tablet APIs, they are not part of any stable API promise yet.
+ * keep them separate */
+LIBINPUT_TABLET_SUPPORT {
+ libinput_event_get_tablet_event;
+ libinput_event_tablet_axis_has_changed;
+ libinput_event_tablet_get_axis_delta;
+ libinput_event_tablet_get_axis_delta_discrete;
+ libinput_event_tablet_get_axis_value;
+ libinput_event_tablet_get_base_event;
+ libinput_event_tablet_get_button;
+ libinput_event_tablet_get_button_state;
+ libinput_event_tablet_get_proximity_state;
+ libinput_event_tablet_get_seat_button_count;
+ libinput_event_tablet_get_time;
+ libinput_event_tablet_get_tool;
+ libinput_event_tablet_get_x_transformed;
+ libinput_event_tablet_get_y_transformed;
+ libinput_event_tablet_get_time_usec;
+ libinput_tool_get_serial;
+ libinput_tool_get_tool_id;
+ libinput_tool_get_type;
+ libinput_tool_get_user_data;
+ libinput_tool_has_button;
+ libinput_tool_has_axis;
+ libinput_tool_ref;
+ libinput_tool_set_user_data;
+ libinput_tool_unref;
++} LIBINPUT_1.1;
litest_add_no_device("device:invalid devices", abs_device_missing_res);
litest_add_no_device("device:invalid devices", abs_mt_device_missing_res);
- litest_add("device:wheel", device_wheel_only, LITEST_WHEEL, LITEST_RELATIVE|LITEST_ABSOLUTE);
+ litest_add("device:wheel", device_wheel_only, LITEST_WHEEL, LITEST_RELATIVE|LITEST_ABSOLUTE|LITEST_TABLET);
+ litest_add_no_device("device:accelerometer", device_accelerometer);
litest_add("device:udev tags", device_udev_tag_alps, LITEST_TOUCHPAD, LITEST_ANY);
litest_add("device:udev tags", device_udev_tag_wacom, LITEST_TOUCHPAD, LITEST_ANY);