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",
|
||||
"objc",
|
||||
"pkg-config",
|
||||
"rdev 0.5.0-2 (git+https://github.com/asur4s/rdev)",
|
||||
"rdev",
|
||||
"serde 1.0.147",
|
||||
"serde_derive",
|
||||
"tfc",
|
||||
@ -4226,26 +4226,6 @@ dependencies = [
|
||||
"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]]
|
||||
name = "rdev"
|
||||
version = "0.5.0-2"
|
||||
@ -4538,7 +4518,7 @@ dependencies = [
|
||||
"num_cpus",
|
||||
"objc",
|
||||
"parity-tokio-ipc",
|
||||
"rdev 0.5.0-2",
|
||||
"rdev",
|
||||
"repng",
|
||||
"reqwest",
|
||||
"rpassword 7.1.0",
|
||||
|
@ -63,7 +63,7 @@ default-net = "0.11.0"
|
||||
wol-rs = "0.9.1"
|
||||
flutter_rust_bridge = { git = "https://github.com/SoLongAndThanksForAllThePizza/flutter_rust_bridge", optional = true }
|
||||
errno = "0.2.8"
|
||||
rdev = { path = "../rdev" }
|
||||
rdev = { git = "https://github.com/asur4s/rdev" }
|
||||
url = { version = "2.1", features = ["serde"] }
|
||||
|
||||
reqwest = { version = "0.11", features = ["blocking", "json", "rustls-tls"], default-features=false }
|
||||
|
@ -93,7 +93,20 @@ pub mod client {
|
||||
shift: bool,
|
||||
command: 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(
|
||||
@ -166,7 +179,7 @@ pub fn grab_loop(recv: mpsc::Receiver<GrabState>) {
|
||||
return Some(event);
|
||||
}
|
||||
if KEYBOARD_HOOKED.load(Ordering::SeqCst) {
|
||||
keyboard::client::process_event(event);
|
||||
client::process_event(event);
|
||||
return None;
|
||||
} else {
|
||||
return Some(event);
|
||||
@ -185,7 +198,7 @@ pub fn grab_loop(recv: mpsc::Receiver<GrabState>) {
|
||||
if let Key::Unknown(keycode) = key {
|
||||
log::error!("rdev get unknown key, keycode is : {:?}", keycode);
|
||||
} else {
|
||||
crate::keyboard::client::process_event(event);
|
||||
client::process_event(event);
|
||||
}
|
||||
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() {
|
||||
"map" => KeyboardMode::Map,
|
||||
"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) {
|
||||
// for mouse
|
||||
let mut keys = MODIFIERS_STATE.lock().unwrap();
|
||||
@ -595,7 +586,7 @@ pub fn legacy_keyboard_mode(event: &Event, key_event: &mut KeyEvent) {
|
||||
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);
|
||||
|
||||
if down_or_up == true {
|
||||
|
Loading…
x
Reference in New Issue
Block a user