fix(input): require mapped layers for keyboard focus (#48)

Co-authored-by: Samuel Onoja <[email protected]>
This commit is contained in:
Samuel OnojaandSamuel Onoja authored and GitHub committed 2026-10-14 13:28:33 +01:00
1 parent 0589f5685b
commit d73d5f08f9
5 files changed
+357 -16

No files matched your search

+5 -1
View File
@@ -998,9 +998,13 @@ impl Ferese {
}
let keyboard = self.seat.get_keyboard().expect("seat has a keyboard");
self.focus_output_at(position);
if let Some(layer) = self.exclusive_keyboard_layer() {
keyboard.set_focus(self, Some(layer.wl_surface().clone()), serial);
return;
}
if let Some((layer, _, _)) = self.layer_under(position) {
if layer.can_receive_keyboard_focus() {
if self.layer_keyboard_eligible(&layer) {
keyboard.set_focus(self, Some(layer.wl_surface().clone()), serial);
} else if raise
&& keyboard.current_focus().is_some_and(|surface| {