mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-27 01:40:16 -05:00
input: kitty: always treat composed characters as ‘printable’
Certain dead key combinations results different escape sequences in
foot, compared to kitty, when the kitty keyboard protocol is used.
if (composed && is_text)
key = utf32;
else {
key = xkb_keysym_to_utf32(sym_to_use);
if (key == 0)
return false;
/* The *shifted* key. May be the same as the unshifted
* key - if so, this is filtered out below, when
* emitting the CSI */
alternate = xkb_keysym_to_utf32(sym);
}
If is_text=false, we’ll fall through to the non-composed
logic. is_text is set to true if the character is printable *and*
there aren’t any non-consumed modifiers enabled.
shift+space is one example where shift is *not* consumed (typically -
may be layouts where it is).
As a result, pressing ", followed by shift+space with the
international english keyboard layout (where " is a dead key) results
in different sequences in foot and kitty.
This patch fixes this by always treating composed characters as
printable.
Closes #1120
This commit is contained in:
parent
4abf46955f
commit
801970aa33
2 changed files with 5 additions and 1 deletions
2
input.c
2
input.c
|
|
@ -1239,7 +1239,7 @@ emit_escapes:
|
|||
? ctx->level0_syms.syms[0]
|
||||
: sym;
|
||||
|
||||
if (composed && is_text)
|
||||
if (composed)
|
||||
key = utf32;
|
||||
else {
|
||||
key = xkb_keysym_to_utf32(sym_to_use);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue