Compare commits

...

2 Commits

Author SHA1 Message Date
Eric Traut
9c040d3db8 Added missing comma 2025-11-15 21:12:05 -08:00
Akrelion45
11e4ac94b7 Handle AltGr as literal char in textarea 2025-11-16 02:07:52 +01:00

View File

@@ -247,6 +247,16 @@ impl TextArea {
} if modifiers == (KeyModifiers::CONTROL | KeyModifiers::ALT) => {
self.delete_backward_word()
},
KeyEvent {
code: KeyCode::Char(c),
modifiers,
..
} if modifiers.contains(KeyModifiers::ALT)
&& modifiers.contains(KeyModifiers::CONTROL) =>
{
// AltGr on many keyboards reports as Ctrl+Alt; treat it as a literal char.
self.insert_str(&c.to_string());
},
KeyEvent {
code: KeyCode::Backspace,
modifiers: KeyModifiers::ALT,
@@ -1454,6 +1464,17 @@ mod tests {
assert_eq!(t.cursor(), 3);
}
#[test]
fn altgr_ctrl_alt_char_inserts_literal() {
let mut t = ta_with("");
t.input(KeyEvent::new(
KeyCode::Char('c'),
KeyModifiers::CONTROL | KeyModifiers::ALT,
));
assert_eq!(t.text(), "c");
assert_eq!(t.cursor(), 1);
}
#[test]
fn cursor_vertical_movement_across_lines_and_bounds() {
let mut t = ta_with("short\nloooooooooong\nmid");