Deadkeys 2 (#20612)

Re-land of #20515 with less brokenness

In particular it turns out that for control, the .characters() method
returns the control code. This mostly didn't make a difference, except
when the control code matched tab/enter/escape (for
ctrl-y,ctrl-[/ctrl-c) as we interpreted the key incorrectly.

Secondly, we were setting IME key too aggressively. This led to (in vim
mode) cmd-shift-{ being interpreted as [, so vim would wait for a second
[ before letting you change tab.

Release Notes:

- N/A
This commit is contained in:
Conrad Irwin 2024-11-13 10:42:08 -07:00 committed by GitHub
parent ad31aacb7a
commit 96deabfb78
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 252 additions and 224 deletions

View file

@ -580,9 +580,9 @@ impl Render for InputExample {
.children(self.recent_keystrokes.iter().rev().map(|ks| {
format!(
"{:} {}",
ks,
ks.unparse(),
if let Some(ime_key) = ks.ime_key.as_ref() {
format!("-> {}", ime_key)
format!("-> {:?}", ime_key)
} else {
"".to_owned()
}