mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-10-29 05:40:12 -04:00
Add mode support to libinput backend
And extend tablet example with tilt and ring support
This commit is contained in:
parent
36dcad13d0
commit
bfc0e95d2c
6 changed files with 62 additions and 18 deletions
|
|
@ -294,6 +294,14 @@ static void tablet_pad_button_notify(struct wl_listener *listener, void *data) {
|
|||
}
|
||||
}
|
||||
|
||||
static void tablet_pad_ring_notify(struct wl_listener *listener, void *data) {
|
||||
struct wlr_event_tablet_pad_ring *event = data;
|
||||
struct tablet_pad_state *pstate = wl_container_of(listener, pstate, ring);
|
||||
if (pstate->compositor->pad_ring_cb) {
|
||||
pstate->compositor->pad_ring_cb(pstate, event->ring, event->position);
|
||||
}
|
||||
}
|
||||
|
||||
static void tablet_pad_destroy_notify(struct wl_listener *listener, void *data) {
|
||||
struct tablet_pad_state *pstate = wl_container_of(listener, pstate, destroy);
|
||||
struct compositor_state *state = pstate->compositor;
|
||||
|
|
@ -315,6 +323,8 @@ static void tablet_pad_add(struct wlr_input_device *device,
|
|||
wl_signal_add(&device->events.destroy, &pstate->destroy);
|
||||
pstate->button.notify = tablet_pad_button_notify;
|
||||
wl_signal_add(&device->tablet_pad->events.button, &pstate->button);
|
||||
pstate->ring.notify = tablet_pad_ring_notify;
|
||||
wl_signal_add(&device->tablet_pad->events.ring, &pstate->ring);
|
||||
wl_list_insert(&state->tablet_pads, &pstate->link);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -73,6 +73,7 @@ struct tablet_pad_state {
|
|||
struct wlr_input_device *device;
|
||||
struct wl_listener destroy;
|
||||
struct wl_listener button;
|
||||
struct wl_listener ring;
|
||||
struct wl_list link;
|
||||
void *data;
|
||||
};
|
||||
|
|
@ -117,6 +118,8 @@ struct compositor_state {
|
|||
uint32_t button, enum wlr_button_state state);
|
||||
void (*pad_button_cb)(struct tablet_pad_state *s,
|
||||
uint32_t button, enum wlr_button_state state);
|
||||
void (*pad_ring_cb)(struct tablet_pad_state *s,
|
||||
uint32_t ring, double position);
|
||||
|
||||
struct wl_display *display;
|
||||
struct wl_event_loop *event_loop;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue