mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-07-16 16:56:09 +03:00

Fixes #267 We have a mechanism `ignore_char` to ignore the `charCallback` exactly once. It is guaranteed by all app runtimes that `keyCallback` is called before `charCallback` and that they're called in order by key press (you'll never get 3 `keyCallbacks` and then `charCallback` for the first press). We use this for example to ensure that if you bind `a` to something, that we never actually print 'a', since the binding consumes it. This commit sets `ignore_char` whenever we detect a key that should be translated to a control character and written to the pty. As the comment in the code states: we probably should've been doing this anyways. It is a complete mystery why macOS behaves the way it does that caused us to figure this out.