git.lucas.co / cce-compositor
Wayland compositor (wlroots)
git clone https://git.lucas.co/cce-compositor.git

commit376fe5a6fc743df19164d748e2bce565ecda0d99
parenta99b0518ab
authorIsaac Freund <[email protected]>
date2025-07-14 10:00
rwm: expand on keyboard design issue comment

 river/Seat.zig | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/river/Seat.zig b/river/Seat.zig
index 30e0e27..3447059 100644
--- a/river/Seat.zig
+++ b/river/Seat.zig
@@ -97,7 +97,10 @@ pub const Focus = union(enum) {
 };
 
 /// XXX experiment with different sizes here, consider making dynamic
-/// XXX Clean out events for destroyed input devices
+/// XXX There's a bug here when a keyboard is destroyed while events
+/// for that keyboard are still in the queue. We need our own separate
+/// keyboard state anyways for proper modifier handling (currently modifiers
+/// effectively bypass the queue due to how wlr_keyboard is implemented).
 const EventQueue = std.fifo.LinearFifo(Event, .{ .Static = 1024 });
 
 wlr_seat: *wlr.Seat,