linux: Fix crash when NoKeymap event is received on Wayland (#24379)
Closes #24139 For weird reasons, Sway on few linux distoros sends `NoKeymap` event when switching windows. Zed crashes due to assertion on this event to be `XkbV1`. To fix this, we ignore `NoKeymap` event instead crashing Zed. Release Notes: - Fixed a crash in Wayland-based compositors like Sway when switching windows via the keyboard.
This commit is contained in:
@@ -1132,11 +1132,10 @@ impl Dispatch<wl_keyboard::WlKeyboard, ()> for WaylandClientStatePtr {
|
||||
size,
|
||||
..
|
||||
} => {
|
||||
assert_eq!(
|
||||
format,
|
||||
wl_keyboard::KeymapFormat::XkbV1,
|
||||
"Unsupported keymap format"
|
||||
);
|
||||
if format != wl_keyboard::KeymapFormat::XkbV1 {
|
||||
log::error!("Received keymap format {:?}, expected XkbV1", format);
|
||||
return;
|
||||
}
|
||||
let xkb_context = xkb::Context::new(xkb::CONTEXT_NO_FLAGS);
|
||||
let keymap = unsafe {
|
||||
xkb::Keymap::new_from_fd(
|
||||
|
||||
Reference in New Issue
Block a user