mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-04 04:06:06 -05:00
input: do not include consumed modifiers in the set sent to the client
When sending a key escape sequence to the client application, do not include consumed modifiers. Fixes part of #376
This commit is contained in:
parent
a8696b567e
commit
6cd72bdee6
2 changed files with 7 additions and 5 deletions
|
|
@ -78,6 +78,8 @@
|
|||
**must** now be written as either `Control+C` or `Control+Shift+c`,
|
||||
the latter being the preferred
|
||||
variant. (https://codeberg.org/dnkl/foot/issues/376)
|
||||
* Consumed modifiers are no longer sent to the client application
|
||||
(https://codeberg.org/dnkl/foot/issues/376).
|
||||
* The minimum version requirement for the libxkbcommon dependency is
|
||||
now 1.0.0.
|
||||
|
||||
|
|
|
|||
10
input.c
10
input.c
|
|
@ -1026,10 +1026,10 @@ key_press_release(struct seat *seat, struct terminal *term, uint32_t serial,
|
|||
*/
|
||||
|
||||
enum modifier keymap_mods = MOD_NONE;
|
||||
keymap_mods |= seat->kbd.shift ? MOD_SHIFT : MOD_NONE;
|
||||
keymap_mods |= seat->kbd.alt ? MOD_ALT : MOD_NONE;
|
||||
keymap_mods |= seat->kbd.ctrl ? MOD_CTRL : MOD_NONE;
|
||||
keymap_mods |= seat->kbd.meta ? MOD_META : MOD_NONE;
|
||||
keymap_mods |= mods & ~consumed & shift ? MOD_SHIFT : MOD_NONE;
|
||||
keymap_mods |= mods & ~consumed & alt ? MOD_ALT : MOD_NONE;
|
||||
keymap_mods |= mods & ~consumed & ctrl ? MOD_CTRL : MOD_NONE;
|
||||
keymap_mods |= mods & ~consumed & meta ? MOD_META : MOD_NONE;
|
||||
|
||||
const struct key_data *keymap;
|
||||
if (sym == XKB_KEY_Escape && keymap_mods == MOD_NONE && term->modify_escape_key) {
|
||||
|
|
@ -1113,7 +1113,7 @@ key_press_release(struct seat *seat, struct terminal *term, uint32_t serial,
|
|||
}
|
||||
|
||||
else {
|
||||
if (mods & alt) {
|
||||
if (mods & ~consumed & alt) {
|
||||
/*
|
||||
* When the alt modifier is pressed, we do one out of three things:
|
||||
*
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue