allow swap key
This commit is contained in:
@@ -210,6 +210,53 @@ pub fn start_grab_loop() {
|
||||
if key == Key::CapsLock || key == Key::NumLock {
|
||||
return Some(event);
|
||||
}
|
||||
#[cfg(target_os = "macos")]
|
||||
let mut event = event;
|
||||
#[cfg(target_os = "macos")] {
|
||||
let mut allow_swap_key = false;
|
||||
#[cfg(not(any(feature = "flutter", feature = "cli")))]
|
||||
if let Some(session) = CUR_SESSION.lock().unwrap().as_ref() {
|
||||
allow_swap_key = session.allow_swap_key;
|
||||
}
|
||||
#[cfg(feature = "flutter")]
|
||||
if let Some(session) = SESSIONS
|
||||
.read()
|
||||
.unwrap()
|
||||
.get(&*CUR_SESSION_ID.read().unwrap())
|
||||
{
|
||||
allow_swap_key = session.allow_swap_key;
|
||||
}
|
||||
if allow_swap_key {
|
||||
match event.event_type {
|
||||
EventType::KeyPress( key) => {
|
||||
let key = match key {
|
||||
rdev::Key::ControlLeft => rdev::Key::MetaLeft,
|
||||
rdev::Key::MetaLeft => rdev::Key::ControlLeft,
|
||||
rdev::Key::ControlRight => rdev::Key::MetaLeft,
|
||||
rdev::Key::MetaRight => rdev::Key::ControlLeft,
|
||||
_ => key,
|
||||
};
|
||||
event.event_type = EventType::KeyPress(key);
|
||||
event.scan_code = rdev::macos_keycode_from_key(key).unwrap_or_default();
|
||||
event.code = event.scan_code as _;
|
||||
}
|
||||
EventType::KeyRelease(key) => {
|
||||
let key = match key {
|
||||
rdev::Key::ControlLeft => rdev::Key::MetaLeft,
|
||||
rdev::Key::MetaLeft => rdev::Key::ControlLeft,
|
||||
rdev::Key::ControlRight => rdev::Key::MetaLeft,
|
||||
rdev::Key::MetaRight => rdev::Key::ControlLeft,
|
||||
_ => key,
|
||||
};
|
||||
event.event_type = EventType::KeyRelease(key);
|
||||
event.scan_code = rdev::macos_keycode_from_key(key).unwrap_or_default();
|
||||
event.code = event.scan_code as _;
|
||||
}
|
||||
_ => {}
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
let mut _keyboard_mode = KeyboardMode::Map;
|
||||
let scan_code = event.scan_code;
|
||||
|
||||
Reference in New Issue
Block a user