windows extended key input
This commit is contained in:
parent
270c2ae291
commit
422dadfef3
@ -640,17 +640,8 @@ fn sync_status(evt: &KeyEvent) -> (bool, bool) {
|
|||||||
|| (!caps_locking && en.get_key_state(enigo::Key::CapsLock));
|
|| (!caps_locking && en.get_key_state(enigo::Key::CapsLock));
|
||||||
let click_numlock = (num_locking && !en.get_key_state(enigo::Key::NumLock))
|
let click_numlock = (num_locking && !en.get_key_state(enigo::Key::NumLock))
|
||||||
|| (!num_locking && en.get_key_state(enigo::Key::NumLock));
|
|| (!num_locking && en.get_key_state(enigo::Key::NumLock));
|
||||||
return (click_capslock, click_numlock);
|
|
||||||
}
|
|
||||||
|
|
||||||
fn map_keyboard_mode(evt: &KeyEvent) {
|
|
||||||
// map mode(1): Send keycode according to the peer platform.
|
|
||||||
let (click_capslock, click_numlock) = sync_status(evt);
|
|
||||||
|
|
||||||
#[cfg(windows)]
|
#[cfg(windows)]
|
||||||
let click_numlock = {
|
let click_numlock = {
|
||||||
crate::platform::windows::try_change_desktop();
|
|
||||||
|
|
||||||
let code = evt.chr();
|
let code = evt.chr();
|
||||||
let key = rdev::get_win_key(code, 0);
|
let key = rdev::get_win_key(code, 0);
|
||||||
//let key = rdev::windows::keycodes::key_from_code(code);
|
//let key = rdev::windows::keycodes::key_from_code(code);
|
||||||
@ -664,13 +655,20 @@ fn map_keyboard_mode(evt: &KeyEvent) {
|
|||||||
RdevKey::DownArrow |
|
RdevKey::DownArrow |
|
||||||
RdevKey::PageDown |
|
RdevKey::PageDown |
|
||||||
RdevKey::Insert |
|
RdevKey::Insert |
|
||||||
RdevKey::Delete => {
|
RdevKey::Delete => en.get_key_state(enigo::Key::NumLock),
|
||||||
let mut en = ENIGO.lock().unwrap();
|
|
||||||
en.get_key_state(enigo::Key::NumLock)
|
|
||||||
},
|
|
||||||
_ => click_numlock,
|
_ => click_numlock,
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
return (click_capslock, click_numlock);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn map_keyboard_mode(evt: &KeyEvent) {
|
||||||
|
// map mode(1): Send keycode according to the peer platform.
|
||||||
|
#[cfg(windows)]
|
||||||
|
crate::platform::windows::try_change_desktop();
|
||||||
|
|
||||||
|
let (click_capslock, click_numlock) = sync_status(evt);
|
||||||
|
|
||||||
// Wayland
|
// Wayland
|
||||||
#[cfg(target_os = "linux")]
|
#[cfg(target_os = "linux")]
|
||||||
if !*IS_X11.lock().unwrap() {
|
if !*IS_X11.lock().unwrap() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user