Refactor: is altgr
This commit is contained in:
parent
5b6cf27393
commit
e99af2b0d4
@ -833,6 +833,35 @@ pub fn translate_key_code(peer: &str, event: &Event, key_event: KeyEvent) -> Opt
|
|||||||
map_keyboard_mode(peer, event, key_event)
|
map_keyboard_mode(peer, event, key_event)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[inline]
|
||||||
|
fn is_altgr(event: &Event) -> bool {
|
||||||
|
#[cfg(target_os = "linux")]
|
||||||
|
if event.platform_code == 0xFE03 {
|
||||||
|
true
|
||||||
|
} else {
|
||||||
|
false
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(target_os = "macos")]
|
||||||
|
// ignore right option key
|
||||||
|
if event.platform_code as u32 == rdev::kVK_RightOption {
|
||||||
|
true
|
||||||
|
} else {
|
||||||
|
false
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(target_os = "windows")]
|
||||||
|
if unsafe { IS_0X021D_DOWN } {
|
||||||
|
if event.position_code == 0xE038 {
|
||||||
|
true
|
||||||
|
} else {
|
||||||
|
false
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub fn translate_keyboard_mode(peer: &str, event: &Event, key_event: KeyEvent) -> Vec<KeyEvent> {
|
pub fn translate_keyboard_mode(peer: &str, event: &Event, key_event: KeyEvent) -> Vec<KeyEvent> {
|
||||||
let mut events: Vec<KeyEvent> = Vec::new();
|
let mut events: Vec<KeyEvent> = Vec::new();
|
||||||
if let Some(unicode_info) = &event.unicode {
|
if let Some(unicode_info) = &event.unicode {
|
||||||
@ -849,23 +878,13 @@ pub fn translate_keyboard_mode(peer: &str, event: &Event, key_event: KeyEvent) -
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(target_os = "macos")]
|
if is_altgr(event) {
|
||||||
// ignore right option key
|
|
||||||
if event.platform_code as u32 == rdev::kVK_RightOption {
|
|
||||||
return events;
|
return events;
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(target_os = "windows")]
|
#[cfg(target_os = "windows")]
|
||||||
unsafe {
|
if event.position_code == 0x021D {
|
||||||
if event.position_code == 0x021D {
|
return events;
|
||||||
return events;
|
|
||||||
}
|
|
||||||
|
|
||||||
if IS_0X021D_DOWN {
|
|
||||||
if event.position_code == 0xE038 {
|
|
||||||
return events;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(target_os = "windows")]
|
#[cfg(target_os = "windows")]
|
||||||
@ -880,10 +899,6 @@ pub fn translate_keyboard_mode(peer: &str, event: &Event, key_event: KeyEvent) -
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if event.platform_code == 0xFE03 {
|
|
||||||
return events;
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(target_os = "linux")]
|
#[cfg(target_os = "linux")]
|
||||||
try_fill_unicode(event, &key_event, &mut events);
|
try_fill_unicode(event, &key_event, &mut events);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user