add support for primary selection

This commit is contained in:
Daniel Barlow 2021-08-18 23:41:07 +01:00
parent 3efcfaf145
commit 804384368c
2 changed files with 16 additions and 6 deletions

View file

@ -76,6 +76,7 @@ struct seat {
struct wl_listener request_cursor; struct wl_listener request_cursor;
struct wl_listener request_set_selection; struct wl_listener request_set_selection;
struct wl_listener request_set_primary_selection;
struct wl_listener keyboard_key; struct wl_listener keyboard_key;
struct wl_listener keyboard_modifiers; struct wl_listener keyboard_modifiers;

View file

@ -5,6 +5,7 @@
#include "labwc.h" #include "labwc.h"
#include "menu/menu.h" #include "menu/menu.h"
#include "ssd.h" #include "ssd.h"
#include <wlr/types/wlr_primary_selection.h>
static void static void
request_cursor_notify(struct wl_listener *listener, void *data) request_cursor_notify(struct wl_listener *listener, void *data)
@ -40,6 +41,16 @@ request_set_selection_notify(struct wl_listener *listener, void *data)
event->serial); event->serial);
} }
static void
request_set_primary_selection_notify(struct wl_listener *listener, void *data)
{
struct 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->seat, event->source,
event->serial);
}
static void static void
process_cursor_move(struct server *server, uint32_t time) process_cursor_move(struct server *server, uint32_t time)
{ {
@ -402,10 +413,8 @@ cursor_init(struct seat *seat)
seat->request_set_selection.notify = request_set_selection_notify; seat->request_set_selection.notify = request_set_selection_notify;
wl_signal_add(&seat->seat->events.request_set_selection, &seat->request_set_selection); wl_signal_add(&seat->seat->events.request_set_selection, &seat->request_set_selection);
/* TODO: seat->request_set_primary_selection.notify =
* seat->request_set_primary_selection.notify = request_set_primary_selection_notify;
* request_set_primary_selectioni_notify; wl_signal_add(&seat->seat->events.request_set_primary_selection,
* wl_signal_add(&seat->seat->events.request_set_primary_selection, &seat->request_set_primary_selection);
* &seat->request_set_primary_selection);
*/
} }