From f23baade916e844b6b6c9714e6b5d81020f6ba57 Mon Sep 17 00:00:00 2001 From: Riley Beckett Date: Fri, 10 Oct 2025 20:31:37 -0400 Subject: minimal layer surface code --- seat.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 seat.c (limited to 'seat.c') diff --git a/seat.c b/seat.c new file mode 100644 index 0000000..2dd84a3 --- /dev/null +++ b/seat.c @@ -0,0 +1,29 @@ +#include "state.h" +#include + +extern struct wl_pointer_listener pointer_listener; +extern struct wl_keyboard_listener keyboard_listener; + +void capabilities(void *data, struct wl_seat *wl_seat, uint32_t capabilities) { + client_state* state = data; + + if (capabilities & WL_SEAT_CAPABILITY_KEYBOARD && !state->keyboard) { + state->keyboard = wl_seat_get_keyboard(wl_seat); + wl_keyboard_add_listener(state->keyboard, &keyboard_listener, state); + } + if (capabilities & WL_SEAT_CAPABILITY_POINTER && !state->pointer) { + state->pointer = wl_seat_get_pointer(wl_seat); + state->cursor_shape_device = wp_cursor_shape_manager_v1_get_pointer( + state->cursor_shape_manager, state->pointer); + wl_pointer_add_listener(state->pointer, &pointer_listener, state); + } + +} + +void name(void *data, struct wl_seat *wl_seat, const char *name) { +} + +struct wl_seat_listener seat_listener = { + .capabilities = capabilities, + .name = name, +}; -- cgit v1.2.3