refactor: get modifier state
This commit is contained in:
parent
a98174448f
commit
95775678ca
24
Cargo.lock
generated
24
Cargo.lock
generated
@ -1533,7 +1533,7 @@ dependencies = [
|
|||||||
"log",
|
"log",
|
||||||
"objc",
|
"objc",
|
||||||
"pkg-config",
|
"pkg-config",
|
||||||
"rdev 0.5.0-2 (git+https://github.com/asur4s/rdev)",
|
"rdev",
|
||||||
"serde 1.0.147",
|
"serde 1.0.147",
|
||||||
"serde_derive",
|
"serde_derive",
|
||||||
"tfc",
|
"tfc",
|
||||||
@ -4226,26 +4226,6 @@ dependencies = [
|
|||||||
"num_cpus",
|
"num_cpus",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "rdev"
|
|
||||||
version = "0.5.0-2"
|
|
||||||
dependencies = [
|
|
||||||
"cocoa",
|
|
||||||
"core-foundation 0.9.3",
|
|
||||||
"core-foundation-sys 0.8.3",
|
|
||||||
"core-graphics 0.22.3",
|
|
||||||
"enum-map",
|
|
||||||
"epoll",
|
|
||||||
"inotify",
|
|
||||||
"lazy_static",
|
|
||||||
"libc",
|
|
||||||
"strum 0.24.1",
|
|
||||||
"strum_macros 0.24.3",
|
|
||||||
"widestring 1.0.2",
|
|
||||||
"winapi 0.3.9",
|
|
||||||
"x11 2.20.0",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rdev"
|
name = "rdev"
|
||||||
version = "0.5.0-2"
|
version = "0.5.0-2"
|
||||||
@ -4538,7 +4518,7 @@ dependencies = [
|
|||||||
"num_cpus",
|
"num_cpus",
|
||||||
"objc",
|
"objc",
|
||||||
"parity-tokio-ipc",
|
"parity-tokio-ipc",
|
||||||
"rdev 0.5.0-2",
|
"rdev",
|
||||||
"repng",
|
"repng",
|
||||||
"reqwest",
|
"reqwest",
|
||||||
"rpassword 7.1.0",
|
"rpassword 7.1.0",
|
||||||
|
|||||||
@ -63,7 +63,7 @@ default-net = "0.11.0"
|
|||||||
wol-rs = "0.9.1"
|
wol-rs = "0.9.1"
|
||||||
flutter_rust_bridge = { git = "https://github.com/SoLongAndThanksForAllThePizza/flutter_rust_bridge", optional = true }
|
flutter_rust_bridge = { git = "https://github.com/SoLongAndThanksForAllThePizza/flutter_rust_bridge", optional = true }
|
||||||
errno = "0.2.8"
|
errno = "0.2.8"
|
||||||
rdev = { path = "../rdev" }
|
rdev = { git = "https://github.com/asur4s/rdev" }
|
||||||
url = { version = "2.1", features = ["serde"] }
|
url = { version = "2.1", features = ["serde"] }
|
||||||
|
|
||||||
reqwest = { version = "0.11", features = ["blocking", "json", "rustls-tls"], default-features=false }
|
reqwest = { version = "0.11", features = ["blocking", "json", "rustls-tls"], default-features=false }
|
||||||
|
|||||||
@ -93,7 +93,20 @@ pub mod client {
|
|||||||
shift: bool,
|
shift: bool,
|
||||||
command: bool,
|
command: bool,
|
||||||
) -> (bool, bool, bool, bool) {
|
) -> (bool, bool, bool, bool) {
|
||||||
get_modifiers_state(alt, ctrl, shift, command)
|
let modifiers_lock = MODIFIERS_STATE.lock().unwrap();
|
||||||
|
let ctrl = *modifiers_lock.get(&Key::ControlLeft).unwrap()
|
||||||
|
|| *modifiers_lock.get(&Key::ControlRight).unwrap()
|
||||||
|
|| ctrl;
|
||||||
|
let shift = *modifiers_lock.get(&Key::ShiftLeft).unwrap()
|
||||||
|
|| *modifiers_lock.get(&Key::ShiftRight).unwrap()
|
||||||
|
|| shift;
|
||||||
|
let command = *modifiers_lock.get(&Key::MetaLeft).unwrap()
|
||||||
|
|| *modifiers_lock.get(&Key::MetaRight).unwrap()
|
||||||
|
|| command;
|
||||||
|
let alt =
|
||||||
|
*modifiers_lock.get(&Key::Alt).unwrap() || *modifiers_lock.get(&Key::AltGr).unwrap() || alt;
|
||||||
|
|
||||||
|
(alt, ctrl, shift, command)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn legacy_modifiers(
|
pub fn legacy_modifiers(
|
||||||
@ -166,7 +179,7 @@ pub fn grab_loop(recv: mpsc::Receiver<GrabState>) {
|
|||||||
return Some(event);
|
return Some(event);
|
||||||
}
|
}
|
||||||
if KEYBOARD_HOOKED.load(Ordering::SeqCst) {
|
if KEYBOARD_HOOKED.load(Ordering::SeqCst) {
|
||||||
keyboard::client::process_event(event);
|
client::process_event(event);
|
||||||
return None;
|
return None;
|
||||||
} else {
|
} else {
|
||||||
return Some(event);
|
return Some(event);
|
||||||
@ -185,7 +198,7 @@ pub fn grab_loop(recv: mpsc::Receiver<GrabState>) {
|
|||||||
if let Key::Unknown(keycode) = key {
|
if let Key::Unknown(keycode) = key {
|
||||||
log::error!("rdev get unknown key, keycode is : {:?}", keycode);
|
log::error!("rdev get unknown key, keycode is : {:?}", keycode);
|
||||||
} else {
|
} else {
|
||||||
crate::keyboard::client::process_event(event);
|
client::process_event(event);
|
||||||
}
|
}
|
||||||
None
|
None
|
||||||
}
|
}
|
||||||
@ -243,7 +256,7 @@ pub fn release_remote_keys() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_keyboard_mode_enum() -> KeyboardMode {
|
pub fn get_keyboard_mode_enum() -> KeyboardMode {
|
||||||
match client::get_keyboard_mode().as_str() {
|
match client::get_keyboard_mode().as_str() {
|
||||||
"map" => KeyboardMode::Map,
|
"map" => KeyboardMode::Map,
|
||||||
"translate" => KeyboardMode::Translate,
|
"translate" => KeyboardMode::Translate,
|
||||||
@ -280,28 +293,6 @@ pub fn convert_numpad_keys(key: Key) -> Key {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_modifiers_state(
|
|
||||||
alt: bool,
|
|
||||||
ctrl: bool,
|
|
||||||
shift: bool,
|
|
||||||
command: bool,
|
|
||||||
) -> (bool, bool, bool, bool) {
|
|
||||||
let modifiers_lock = MODIFIERS_STATE.lock().unwrap();
|
|
||||||
let ctrl = *modifiers_lock.get(&Key::ControlLeft).unwrap()
|
|
||||||
|| *modifiers_lock.get(&Key::ControlRight).unwrap()
|
|
||||||
|| ctrl;
|
|
||||||
let shift = *modifiers_lock.get(&Key::ShiftLeft).unwrap()
|
|
||||||
|| *modifiers_lock.get(&Key::ShiftRight).unwrap()
|
|
||||||
|| shift;
|
|
||||||
let command = *modifiers_lock.get(&Key::MetaLeft).unwrap()
|
|
||||||
|| *modifiers_lock.get(&Key::MetaRight).unwrap()
|
|
||||||
|| command;
|
|
||||||
let alt =
|
|
||||||
*modifiers_lock.get(&Key::Alt).unwrap() || *modifiers_lock.get(&Key::AltGr).unwrap() || alt;
|
|
||||||
|
|
||||||
(alt, ctrl, shift, command)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn update_modifiers_state(event: &Event) {
|
fn update_modifiers_state(event: &Event) {
|
||||||
// for mouse
|
// for mouse
|
||||||
let mut keys = MODIFIERS_STATE.lock().unwrap();
|
let mut keys = MODIFIERS_STATE.lock().unwrap();
|
||||||
@ -595,7 +586,7 @@ pub fn legacy_keyboard_mode(event: &Event, key_event: &mut KeyEvent) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let (alt, ctrl, shift, command) = get_modifiers_state(alt, ctrl, shift, command);
|
let (alt, ctrl, shift, command) = client::get_modifiers_state(alt, ctrl, shift, command);
|
||||||
client::legacy_modifiers(key_event, alt, ctrl, shift, command);
|
client::legacy_modifiers(key_event, alt, ctrl, shift, command);
|
||||||
|
|
||||||
if down_or_up == true {
|
if down_or_up == true {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user