backend/libinput: rework tablet interface

The wlr_libinput_device owns its wlr_tablet and its associated wlr_tablet_tools
This commit is contained in:
Simon Zeni 2022-02-24 11:00:11 -05:00 committed by Kirill Primak
parent 4f4dd95223
commit c8456086a1
4 changed files with 116 additions and 213 deletions

View file

@ -38,6 +38,8 @@ struct wlr_libinput_input_device {
struct wlr_pointer pointer;
struct wlr_switch switch_device;
struct wlr_touch touch;
struct wlr_tablet tablet;
struct wl_list tablet_tools; // see backend/libinput/tablet_tool.c
struct wl_list link;
};
@ -111,16 +113,17 @@ void handle_touch_cancel(struct libinput_event *event,
void handle_touch_frame(struct libinput_event *event,
struct wlr_touch *touch);
struct wlr_tablet *create_libinput_tablet(
struct libinput_device *device);
void init_device_tablet(struct wlr_libinput_input_device *dev);
struct wlr_libinput_input_device *device_from_tablet(
struct wlr_tablet *tablet);
void handle_tablet_tool_axis(struct libinput_event *event,
struct libinput_device *device);
struct wlr_tablet *tablet);
void handle_tablet_tool_proximity(struct libinput_event *event,
struct libinput_device *device);
struct wlr_tablet *tablet);
void handle_tablet_tool_tip(struct libinput_event *event,
struct libinput_device *device);
struct wlr_tablet *tablet);
void handle_tablet_tool_button(struct libinput_event *event,
struct libinput_device *device);
struct wlr_tablet *tablet);
struct wlr_tablet_pad *create_libinput_tablet_pad(
struct libinput_device *device);