From db95a90e57a8dfd60856599df7cb26a8d38fb4aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Tue, 7 Dec 2021 21:48:42 +0100 Subject: [PATCH] kitty: report-alternate: apply base-layout key to composed characters --- input.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/input.c b/input.c index 7b379ed1..661e881e 100644 --- a/input.c +++ b/input.c @@ -1432,22 +1432,24 @@ emit_escapes: if (key == 0) key = sym_to_use; - if (report_alternate) { - /* The *shifted* key. May be the same as the unshifted - * key - if so, this is filtered out below, when - * emitting the CSI */ + if (report_alternate) alternate = xkb_keysym_to_utf32(sym); + } - /* Base layout key. I.e the symbol the pressed key - * produces in the base/default layout (layout idx - * 0) */ - const xkb_keysym_t *base_syms; - int base_sym_count = xkb_keymap_key_get_syms_by_level( - seat->kbd.xkb_keymap, ctx->key, 0, 0, &base_syms); + if (report_alternate) { + /* The *shifted* key. May be the same as the unshifted + * key - if so, this is filtered out below, when + * emitting the CSI */ - if (base_sym_count > 0) - base = xkb_keysym_to_utf32(base_syms[0]); - } + /* Base layout key. I.e the symbol the pressed key + * produces in the base/default layout (layout idx + * 0) */ + const xkb_keysym_t *base_syms; + int base_sym_count = xkb_keymap_key_get_syms_by_level( + seat->kbd.xkb_keymap, ctx->key, 0, 0, &base_syms); + + if (base_sym_count > 0) + base = xkb_keysym_to_utf32(base_syms[0]); } final = 'u';