fix: don't clear ime_last_event when a key is UP #6208
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue
When certain keys [1] are pressed and held before a previously held key is released, the key up event from the held key will prevent the new key from repeating. More details in #4061.
Approach
IMO, the key up event shouldn't clear
ime_last_event
nor should it flip theime_state
(since the event is generally associated with key down events). Hence I'm adding a simple check inkey_common
to prevent the event from being set by a key up event.Technically there're other places that clear
ime_last_event
, but I'm limiting my change to the immediate blast radius of the issue for simplicity.Test Plan
cargo test --all
[1] - b, f, j, m, p, q, v, x to be exact. The accent menu won't be loaded for these characters on macOS anyway.