diff --git a/CHANGELOG.md b/CHANGELOG.md index ca3ca225..be8b02b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -52,6 +52,8 @@ * Font size adjustment (“zooming”) when font is configured with a **pixelsize**, and `dpi-aware=no` (https://codeberg.org/dnkl/foot/issues/842). +* Key presses triggering keyboard layout switches also being emitted + CSI codes in the Kitty keyboard protocol. ### Security diff --git a/input.c b/input.c index 13899b28..78e5017c 100644 --- a/input.c +++ b/input.c @@ -1329,7 +1329,7 @@ emit_escapes: else { key = xkb_keysym_to_utf32(sym_to_use); if (key == 0) - key = sym_to_use; + return false; /* The *shifted* key. May be the same as the unshifted * key - if so, this is filtered out below, when @@ -1349,6 +1349,9 @@ emit_escapes: final = 'u'; } + if (key < 0) + return false; + xassert(encoded_mods >= 1); char event[4]; @@ -1365,9 +1368,6 @@ emit_escapes: size_t left = sizeof(buf); size_t bytes; - if (key < 0) - return false; - if (final == 'u' || final == '~') { bytes = snprintf(p, left, "\x1b[%u", key); p += bytes; left -= bytes;