refactor + add request set selection handles

This commit is contained in:
DanyLE
2024-04-01 23:51:48 +02:00
parent 0d84bd388c
commit 68b1890d61
5 changed files with 47 additions and 22 deletions

26
seat.c
View File

@@ -216,6 +216,24 @@ static void seat_request_set_selection(struct wl_listener *listener, void *data)
wlr_seat_set_selection(seat->wlr_seat, event->source, event->serial);
}
static void request_set_selection_notify(struct wl_listener *listener, void *data)
{
struct diyac_seat *seat = wl_container_of(
listener, seat, request_set_selection);
struct wlr_seat_request_set_selection_event *event = data;
wlr_seat_set_selection(seat->wlr_seat, event->source,
event->serial);
}
static void request_set_primary_selection_notify(struct wl_listener *listener, void *data)
{
struct diyac_seat *seat = wl_container_of(
listener, seat, request_set_primary_selection);
struct wlr_seat_request_set_primary_selection_event *event = data;
wlr_seat_set_primary_selection(seat->wlr_seat, event->source,
event->serial);
}
/*
* Configures a seat, which is a single "seat" at which a user sits and
* operates the computer. This conceptually includes up to one keyboard,
@@ -235,6 +253,14 @@ void diyac_init_seat(struct diyac_server *server)
server->seat.request_set_selection.notify = seat_request_set_selection;
wl_signal_add(&server->seat.wlr_seat->events.request_set_selection,
&server->seat.request_set_selection);
server->seat.request_set_selection.notify = request_set_selection_notify;
wl_signal_add(&server->seat.wlr_seat->events.request_set_selection,
&server->seat.request_set_selection);
server->seat.request_set_primary_selection.notify =
request_set_primary_selection_notify;
wl_signal_add(&server->seat.wlr_seat->events.request_set_primary_selection,
&server->seat.request_set_primary_selection);
}
static void seat_focus(struct diyac_seat *seat, struct wlr_surface *surface, bool is_lock_surface)