From cf21565c77656cf12bef6f823073d68d33e96bc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pa=CC=84vels=20Nadtoc=CC=8Cajevs?= <7645683+bruvzg@users.noreply.github.com> Date: Sat, 18 Oct 2025 19:25:55 +0300 Subject: [PATCH] [X11] Fix `keyboard_get_label_from_physical` errors when used on key without label. --- platform/linuxbsd/x11/display_server_x11.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/platform/linuxbsd/x11/display_server_x11.cpp b/platform/linuxbsd/x11/display_server_x11.cpp index f97b5621e5d..d0a469b8eec 100644 --- a/platform/linuxbsd/x11/display_server_x11.cpp +++ b/platform/linuxbsd/x11/display_server_x11.cpp @@ -3746,8 +3746,11 @@ Key DisplayServerX11::keyboard_get_label_from_physical(Key p_keycode) const { Key key = KeyMappingX11::get_keycode(xkeysym); #ifdef XKB_ENABLED if (xkb_loaded_v08p) { - String keysym = String::chr(xkb_keysym_to_utf32(xkb_keysym_to_upper(xkeysym))); - key = fix_key_label(keysym[0], KeyMappingX11::get_keycode(xkeysym)); + char32_t chr = xkb_keysym_to_utf32(xkb_keysym_to_upper(xkeysym)); + if (chr != 0) { + String keysym = String::chr(chr); + key = fix_key_label(keysym[0], KeyMappingX11::get_keycode(xkeysym)); + } } #endif