try out unicode if key_down fail

This commit is contained in:
rustdesk committed 2022-05-09 01:36:56 +08:00
1 parent b526bf4a67
commit 2724bd4000
3 files changed
+26 -7

No files matched your search

+16 -5
View File
@@ -684,11 +684,22 @@ fn handle_key_(evt: &KeyEvent) {
}
Some(key_event::Union::chr(chr)) => {
if evt.down {
allow_err!(en.key_down(get_layout(chr)));
KEYS_DOWN
.lock()
.unwrap()
.insert(chr as u64 + KEY_CHAR_START, Instant::now());
if en.key_down(get_layout(chr)).is_ok() {
KEYS_DOWN
.lock()
.unwrap()
.insert(chr as u64 + KEY_CHAR_START, Instant::now());
} else {
if let Ok(chr) = char::try_from(chr) {
let mut x = chr.to_string();
if get_modifier_state(Key::Shift, &mut en)
|| get_modifier_state(Key::CapsLock, &mut en)
{
x = x.to_uppercase();
}
en.key_sequence(&x);
}
}
} else {
en.key_up(get_layout(chr));
KEYS_DOWN