win, tranlsate mode, handle shift
Signed-off-by: fufesou <shuanglongchen@yeah.net>
This commit is contained in:
parent
6e54cd2e6b
commit
6eec0041bd
@ -88,14 +88,17 @@ pub mod client {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn process_event(event: &Event, lock_modes: Option<i32>) {
|
pub fn process_event(event: &Event, lock_modes: Option<i32>) -> KeyboardMode {
|
||||||
|
let keyboard_mode = get_keyboard_mode_enum();
|
||||||
|
|
||||||
if is_long_press(&event) {
|
if is_long_press(&event) {
|
||||||
return;
|
return keyboard_mode;
|
||||||
}
|
}
|
||||||
|
|
||||||
for key_event in event_to_key_events(&event, lock_modes) {
|
for key_event in event_to_key_events(&event, keyboard_mode, lock_modes) {
|
||||||
send_key_event(&key_event);
|
send_key_event(&key_event);
|
||||||
}
|
}
|
||||||
|
keyboard_mode
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_modifiers_state(
|
pub fn get_modifiers_state(
|
||||||
@ -205,7 +208,14 @@ pub fn start_grab_loop() {
|
|||||||
return Some(event);
|
return Some(event);
|
||||||
}
|
}
|
||||||
if KEYBOARD_HOOKED.load(Ordering::SeqCst) {
|
if KEYBOARD_HOOKED.load(Ordering::SeqCst) {
|
||||||
client::process_event(&event, None);
|
let keyboard_mode = client::process_event(&event, None);
|
||||||
|
if keyboard_mode == KeyboardMode::Translate {
|
||||||
|
// shift
|
||||||
|
if event.scan_code == 0x2A {
|
||||||
|
return Some(event);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if is_press {
|
if is_press {
|
||||||
return None;
|
return None;
|
||||||
} else {
|
} else {
|
||||||
@ -342,7 +352,7 @@ fn update_modifiers_state(event: &Event) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn event_to_key_events(event: &Event, lock_modes: Option<i32>) -> Vec<KeyEvent> {
|
pub fn event_to_key_events(event: &Event, keyboard_mode: KeyboardMode, lock_modes: Option<i32>) -> Vec<KeyEvent> {
|
||||||
let mut key_event = KeyEvent::new();
|
let mut key_event = KeyEvent::new();
|
||||||
update_modifiers_state(event);
|
update_modifiers_state(event);
|
||||||
|
|
||||||
@ -356,7 +366,6 @@ pub fn event_to_key_events(event: &Event, lock_modes: Option<i32>) -> Vec<KeyEve
|
|||||||
_ => {}
|
_ => {}
|
||||||
}
|
}
|
||||||
|
|
||||||
let keyboard_mode = get_keyboard_mode_enum();
|
|
||||||
key_event.mode = keyboard_mode.into();
|
key_event.mode = keyboard_mode.into();
|
||||||
let mut key_events = match keyboard_mode {
|
let mut key_events = match keyboard_mode {
|
||||||
KeyboardMode::Map => match map_keyboard_mode(event, key_event) {
|
KeyboardMode::Map => match map_keyboard_mode(event, key_event) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user