implement primary selection

This commit is contained in:
Squibid 2025-12-22 20:16:07 -05:00
parent 86d4a7932d
commit dd09196e02
Signed by: squibid
GPG key ID: BECE5684D3C4005D

View file

@ -35,7 +35,7 @@ keymap: *xkb.Keymap,
request_set_cursor: wl.Listener(*wlr.Seat.event.RequestSetCursor) = .init(handleRequestSetCursor), request_set_cursor: wl.Listener(*wlr.Seat.event.RequestSetCursor) = .init(handleRequestSetCursor),
request_set_selection: wl.Listener(*wlr.Seat.event.RequestSetSelection) = .init(handleRequestSetSelection), request_set_selection: wl.Listener(*wlr.Seat.event.RequestSetSelection) = .init(handleRequestSetSelection),
// request_set_primary_selection request_set_primary_selection: wl.Listener(*wlr.Seat.event.RequestSetPrimarySelection) = .init(handleRequestSetPrimarySelection),
// request_start_drage // request_start_drage
pub fn init(self: *Seat) void { pub fn init(self: *Seat) void {
@ -70,11 +70,13 @@ pub fn init(self: *Seat) void {
self.wlr_seat.events.request_set_cursor.add(&self.request_set_cursor); self.wlr_seat.events.request_set_cursor.add(&self.request_set_cursor);
self.wlr_seat.events.request_set_selection.add(&self.request_set_selection); self.wlr_seat.events.request_set_selection.add(&self.request_set_selection);
self.wlr_seat.events.request_set_primary_selection.add(&self.request_set_primary_selection);
} }
pub fn deinit(self: *Seat) void { pub fn deinit(self: *Seat) void {
self.request_set_cursor.link.remove(); self.request_set_cursor.link.remove();
self.request_set_selection.link.remove(); self.request_set_selection.link.remove();
self.request_set_primary_selection.link.remove();
self.keyboard_group.destroy(); self.keyboard_group.destroy();
self.wlr_seat.destroy(); self.wlr_seat.destroy();
@ -171,3 +173,10 @@ fn handleRequestSetSelection (
) void { ) void {
server.seat.wlr_seat.setSelection(event.source, event.serial); server.seat.wlr_seat.setSelection(event.source, event.serial);
} }
fn handleRequestSetPrimarySelection(
_: *wl.Listener(*wlr.Seat.event.RequestSetPrimarySelection),
event: *wlr.Seat.event.RequestSetPrimarySelection,
) void {
server.seat.wlr_seat.setPrimarySelection(event.source, event.serial);
}