Commit 6c7b0d9
committed
fix(bindings): fire all matching bindings, honor ReceiveChar
Alacritty's `process_key_bindings` iterates every binding that matches
the (key, mods) pair and runs each one's action, only skipping the
"suppress the underlying char" step when a binding's action is
`ReceiveChar`. We stopped at the first match, so the common default
config that stacks `Ctrl+L → ClearLogNotice` (an alacritty-only UI
action we treat as Unsupported) ahead of `Ctrl+L → chars = "\\f"`
silently consumed the press and never wrote 0x0c.
Mirror alacritty: collect every match, fan them out to dispatch, and
let the key fall through to the PTY only when at least one binding is
`ReceiveChar`.1 parent 00cf2f1 commit 6c7b0d9
2 files changed
Lines changed: 29 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
464 | 464 | | |
465 | 465 | | |
466 | 466 | | |
467 | | - | |
468 | | - | |
469 | | - | |
470 | | - | |
471 | | - | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
472 | 480 | | |
473 | 481 | | |
474 | 482 | | |
| |||
541 | 549 | | |
542 | 550 | | |
543 | 551 | | |
| 552 | + | |
544 | 553 | | |
545 | 554 | | |
546 | 555 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
50 | 54 | | |
51 | 55 | | |
52 | 56 | | |
| |||
193 | 197 | | |
194 | 198 | | |
195 | 199 | | |
196 | | - | |
197 | | - | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
198 | 210 | | |
199 | 211 | | |
200 | 212 | | |
| |||
408 | 420 | | |
409 | 421 | | |
410 | 422 | | |
| 423 | + | |
411 | 424 | | |
412 | 425 | | |
413 | 426 | | |
| |||
0 commit comments