mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-05 04:06:08 -05:00
input: ignore key-bindings without modifiers when matching untranslated/raw
When matching the unshifted symbol, or the raw key code, ignore all key bindings that don't have any modifiers. This fixes an issue where it was impossible to enter (some of the) numbers on the keypad, **if** there was a key-binding for e.g. KP_Page_Up, or KP_Page_Down.
This commit is contained in:
parent
d24f700256
commit
bee17a95b8
3 changed files with 6 additions and 6 deletions
4
input.c
4
input.c
|
|
@ -1600,7 +1600,7 @@ key_press_release(struct seat *seat, struct terminal *term, uint32_t serial,
|
|||
tll_foreach(bindings->key, it) {
|
||||
const struct key_binding *bind = &it->item;
|
||||
|
||||
if (bind->mods != mods)
|
||||
if (bind->mods != mods || bind->mods == 0)
|
||||
continue;
|
||||
|
||||
for (size_t i = 0; i < raw_count; i++) {
|
||||
|
|
@ -1616,7 +1616,7 @@ key_press_release(struct seat *seat, struct terminal *term, uint32_t serial,
|
|||
tll_foreach(bindings->key, it) {
|
||||
const struct key_binding *bind = &it->item;
|
||||
|
||||
if (bind->mods != mods)
|
||||
if (bind->mods != mods || bind->mods == 0)
|
||||
continue;
|
||||
|
||||
tll_foreach(bind->k.key_codes, code) {
|
||||
|
|
|
|||
4
search.c
4
search.c
|
|
@ -1413,7 +1413,7 @@ search_input(struct seat *seat, struct terminal *term,
|
|||
tll_foreach(bindings->search, it) {
|
||||
const struct key_binding *bind = &it->item;
|
||||
|
||||
if (bind->mods != mods)
|
||||
if (bind->mods != mods || bind->mods == 0)
|
||||
continue;
|
||||
|
||||
for (size_t i = 0; i < raw_count; i++) {
|
||||
|
|
@ -1433,7 +1433,7 @@ search_input(struct seat *seat, struct terminal *term,
|
|||
tll_foreach(bindings->search, it) {
|
||||
const struct key_binding *bind = &it->item;
|
||||
|
||||
if (bind->mods != mods)
|
||||
if (bind->mods != mods || bind->mods == 0)
|
||||
continue;
|
||||
|
||||
tll_foreach(bind->k.key_codes, code) {
|
||||
|
|
|
|||
|
|
@ -198,7 +198,7 @@ urls_input(struct seat *seat, struct terminal *term,
|
|||
/* Match untranslated symbols */
|
||||
tll_foreach(bindings->url, it) {
|
||||
const struct key_binding *bind = &it->item;
|
||||
if (bind->mods != mods)
|
||||
if (bind->mods != mods || bind->mods == 0)
|
||||
continue;
|
||||
|
||||
for (size_t i = 0; i < raw_count; i++) {
|
||||
|
|
@ -212,7 +212,7 @@ urls_input(struct seat *seat, struct terminal *term,
|
|||
/* Match raw key code */
|
||||
tll_foreach(bindings->url, it) {
|
||||
const struct key_binding *bind = &it->item;
|
||||
if (bind->mods != mods)
|
||||
if (bind->mods != mods || bind->mods == 0)
|
||||
continue;
|
||||
|
||||
/* Match raw key code */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue