diff --git a/CHANGELOG.md b/CHANGELOG.md index 46e3a5b8..266d9b77 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,11 @@ ### Deprecated ### Removed ### Fixed + +* Logic that repairs invalid key bindings ended up breaking valid key + bindings instead (https://codeberg.org/dnkl/foot/issues/407). + + ### Security ### Contributors diff --git a/input.c b/input.c index bc28bbf2..9a26e778 100644 --- a/input.c +++ b/input.c @@ -450,7 +450,7 @@ maybe_repair_key_combo(const struct seat *seat, /* Check if key combo’s modifier set intersects */ for (size_t j = 0; j < mod_mask_count; j++) { - if (!(mod_masks[j] & mods)) + if ((mod_masks[j] & mods) != mod_masks[j]) continue; char combo[64] = {0};