Fix numpad when linux -> windows

This commit is contained in:
Asura 2022-09-26 00:45:59 -07:00
parent 18ee6f0e9d
commit 5216dedca6

View File

@ -309,8 +309,6 @@ impl<T: InvokeUiSession> Session<T> {
} else { } else {
key key
}; };
#[cfg(not(windows))]
let key = self.convert_numpad_keys(key);
let peer = self.peer_platform(); let peer = self.peer_platform();
let mut key_event = KeyEvent::new(); let mut key_event = KeyEvent::new();
@ -657,6 +655,9 @@ impl<T: InvokeUiSession> Session<T> {
_ => KeyboardMode::Legacy, _ => KeyboardMode::Legacy,
}; };
#[cfg(not(windows))]
let key = self.convert_numpad_keys(key);
match mode { match mode {
KeyboardMode::Map => { KeyboardMode::Map => {
if down_or_up == true { if down_or_up == true {
@ -845,6 +846,24 @@ impl<T: InvokeUiSession> Session<T> {
key_event.set_chr(chr); key_event.set_chr(chr);
} }
Key::ControlKey(key) => { Key::ControlKey(key) => {
let key = if !get_key_state(enigo::Key::NumLock) {
match key {
ControlKey::Numpad0 => ControlKey::Insert,
ControlKey::Decimal => ControlKey::Delete,
ControlKey::Numpad1 => ControlKey::End,
ControlKey::Numpad2 => ControlKey::DownArrow,
ControlKey::Numpad3 => ControlKey::PageDown,
ControlKey::Numpad4 => ControlKey::LeftArrow,
ControlKey::Numpad5 => ControlKey::Clear,
ControlKey::Numpad6 => ControlKey::RightArrow,
ControlKey::Numpad7 => ControlKey::Home,
ControlKey::Numpad8 => ControlKey::UpArrow,
ControlKey::Numpad9 => ControlKey::PageUp,
_ => key,
}
}else{
key
};
key_event.set_control_key(key.clone()); key_event.set_control_key(key.clone());
} }
Key::_Raw(raw) => { Key::_Raw(raw) => {