Revise Key and KeyCode enums
Split `Key` into clear categories, like `Named`, `Dead`, Character`, `Unidentified` removing the `#[non_exhaustive]` from the `Key` itself. Similar action was done for the `KeyCode`. Fixes: #2995 Co-authored-by: Kirill Chibisov <contact@kchibisov.com>
This commit is contained in:
parent
b9e1e96eaa
commit
acfeff5327
31 changed files with 1456 additions and 1277 deletions
|
|
@ -1,18 +1,18 @@
|
|||
//! Convert XKB keys to Winit keys.
|
||||
|
||||
use crate::keyboard::{Key, KeyCode, KeyLocation, NativeKey, NativeKeyCode};
|
||||
use crate::keyboard::{Key, KeyCode, KeyLocation, NamedKey, NativeKey, NativeKeyCode, PhysicalKey};
|
||||
|
||||
/// Map the raw X11-style keycode to the `KeyCode` enum.
|
||||
///
|
||||
/// X11-style keycodes are offset by 8 from the keycodes the Linux kernel uses.
|
||||
pub fn raw_keycode_to_keycode(keycode: u32) -> KeyCode {
|
||||
pub fn raw_keycode_to_physicalkey(keycode: u32) -> PhysicalKey {
|
||||
scancode_to_keycode(keycode.saturating_sub(8))
|
||||
}
|
||||
|
||||
/// Map the linux scancode to Keycode.
|
||||
///
|
||||
/// Both X11 and Wayland use keys with `+ 8` offset to linux scancode.
|
||||
pub fn scancode_to_keycode(scancode: u32) -> KeyCode {
|
||||
pub fn scancode_to_keycode(scancode: u32) -> PhysicalKey {
|
||||
// The keycode values are taken from linux/include/uapi/linux/input-event-codes.h, as
|
||||
// libxkbcommon's documentation seems to suggest that the keycode values we're interested in
|
||||
// are defined by the Linux kernel. If Winit programs end up being run on other Unix-likes,
|
||||
|
|
@ -21,8 +21,8 @@ pub fn scancode_to_keycode(scancode: u32) -> KeyCode {
|
|||
// Some of the keycodes are likely superfluous for our purposes, and some are ones which are
|
||||
// difficult to test the correctness of, or discover the purpose of. Because of this, they've
|
||||
// either been commented out here, or not included at all.
|
||||
match scancode {
|
||||
0 => KeyCode::Unidentified(NativeKeyCode::Xkb(0)),
|
||||
PhysicalKey::Code(match scancode {
|
||||
0 => return PhysicalKey::Unidentified(NativeKeyCode::Xkb(0)),
|
||||
1 => KeyCode::Escape,
|
||||
2 => KeyCode::Digit1,
|
||||
3 => KeyCode::Digit2,
|
||||
|
|
@ -256,7 +256,7 @@ pub fn scancode_to_keycode(scancode: u32) -> KeyCode {
|
|||
// 237 => KeyCode::BLUETOOTH,
|
||||
// 238 => KeyCode::WLAN,
|
||||
// 239 => KeyCode::UWB,
|
||||
240 => KeyCode::Unidentified(NativeKeyCode::Unidentified),
|
||||
240 => return PhysicalKey::Unidentified(NativeKeyCode::Unidentified),
|
||||
// 241 => KeyCode::VIDEO_NEXT,
|
||||
// 242 => KeyCode::VIDEO_PREV,
|
||||
// 243 => KeyCode::BRIGHTNESS_CYCLE,
|
||||
|
|
@ -265,14 +265,23 @@ pub fn scancode_to_keycode(scancode: u32) -> KeyCode {
|
|||
// 246 => KeyCode::WWAN,
|
||||
// 247 => KeyCode::RFKILL,
|
||||
// 248 => KeyCode::KEY_MICMUTE,
|
||||
_ => KeyCode::Unidentified(NativeKeyCode::Xkb(scancode)),
|
||||
}
|
||||
_ => return PhysicalKey::Unidentified(NativeKeyCode::Xkb(scancode)),
|
||||
})
|
||||
}
|
||||
|
||||
pub fn keycode_to_scancode(keycode: KeyCode) -> Option<u32> {
|
||||
match keycode {
|
||||
KeyCode::Unidentified(NativeKeyCode::Unidentified) => Some(240),
|
||||
KeyCode::Unidentified(NativeKeyCode::Xkb(raw)) => Some(raw),
|
||||
pub fn physicalkey_to_scancode(key: PhysicalKey) -> Option<u32> {
|
||||
let code = match key {
|
||||
PhysicalKey::Code(code) => code,
|
||||
PhysicalKey::Unidentified(code) => {
|
||||
return match code {
|
||||
NativeKeyCode::Unidentified => Some(240),
|
||||
NativeKeyCode::Xkb(raw) => Some(raw),
|
||||
_ => None,
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
match code {
|
||||
KeyCode::Escape => Some(1),
|
||||
KeyCode::Digit1 => Some(2),
|
||||
KeyCode::Digit2 => Some(3),
|
||||
|
|
@ -415,213 +424,213 @@ pub fn keycode_to_scancode(keycode: KeyCode) -> Option<u32> {
|
|||
|
||||
pub fn keysym_to_key(keysym: u32) -> Key {
|
||||
use xkbcommon_dl::keysyms;
|
||||
match keysym {
|
||||
Key::Named(match keysym {
|
||||
// TTY function keys
|
||||
keysyms::BackSpace => Key::Backspace,
|
||||
keysyms::Tab => Key::Tab,
|
||||
// keysyms::Linefeed => Key::Linefeed,
|
||||
keysyms::Clear => Key::Clear,
|
||||
keysyms::Return => Key::Enter,
|
||||
keysyms::Pause => Key::Pause,
|
||||
keysyms::Scroll_Lock => Key::ScrollLock,
|
||||
keysyms::Sys_Req => Key::PrintScreen,
|
||||
keysyms::Escape => Key::Escape,
|
||||
keysyms::Delete => Key::Delete,
|
||||
keysyms::BackSpace => NamedKey::Backspace,
|
||||
keysyms::Tab => NamedKey::Tab,
|
||||
// keysyms::Linefeed => NamedKey::Linefeed,
|
||||
keysyms::Clear => NamedKey::Clear,
|
||||
keysyms::Return => NamedKey::Enter,
|
||||
keysyms::Pause => NamedKey::Pause,
|
||||
keysyms::Scroll_Lock => NamedKey::ScrollLock,
|
||||
keysyms::Sys_Req => NamedKey::PrintScreen,
|
||||
keysyms::Escape => NamedKey::Escape,
|
||||
keysyms::Delete => NamedKey::Delete,
|
||||
|
||||
// IME keys
|
||||
keysyms::Multi_key => Key::Compose,
|
||||
keysyms::Codeinput => Key::CodeInput,
|
||||
keysyms::SingleCandidate => Key::SingleCandidate,
|
||||
keysyms::MultipleCandidate => Key::AllCandidates,
|
||||
keysyms::PreviousCandidate => Key::PreviousCandidate,
|
||||
keysyms::Multi_key => NamedKey::Compose,
|
||||
keysyms::Codeinput => NamedKey::CodeInput,
|
||||
keysyms::SingleCandidate => NamedKey::SingleCandidate,
|
||||
keysyms::MultipleCandidate => NamedKey::AllCandidates,
|
||||
keysyms::PreviousCandidate => NamedKey::PreviousCandidate,
|
||||
|
||||
// Japanese keys
|
||||
keysyms::Kanji => Key::KanjiMode,
|
||||
keysyms::Muhenkan => Key::NonConvert,
|
||||
keysyms::Henkan_Mode => Key::Convert,
|
||||
keysyms::Romaji => Key::Romaji,
|
||||
keysyms::Hiragana => Key::Hiragana,
|
||||
keysyms::Hiragana_Katakana => Key::HiraganaKatakana,
|
||||
keysyms::Zenkaku => Key::Zenkaku,
|
||||
keysyms::Hankaku => Key::Hankaku,
|
||||
keysyms::Zenkaku_Hankaku => Key::ZenkakuHankaku,
|
||||
// keysyms::Touroku => Key::Touroku,
|
||||
// keysyms::Massyo => Key::Massyo,
|
||||
keysyms::Kana_Lock => Key::KanaMode,
|
||||
keysyms::Kana_Shift => Key::KanaMode,
|
||||
keysyms::Eisu_Shift => Key::Alphanumeric,
|
||||
keysyms::Eisu_toggle => Key::Alphanumeric,
|
||||
keysyms::Kanji => NamedKey::KanjiMode,
|
||||
keysyms::Muhenkan => NamedKey::NonConvert,
|
||||
keysyms::Henkan_Mode => NamedKey::Convert,
|
||||
keysyms::Romaji => NamedKey::Romaji,
|
||||
keysyms::Hiragana => NamedKey::Hiragana,
|
||||
keysyms::Hiragana_Katakana => NamedKey::HiraganaKatakana,
|
||||
keysyms::Zenkaku => NamedKey::Zenkaku,
|
||||
keysyms::Hankaku => NamedKey::Hankaku,
|
||||
keysyms::Zenkaku_Hankaku => NamedKey::ZenkakuHankaku,
|
||||
// keysyms::Touroku => NamedKey::Touroku,
|
||||
// keysyms::Massyo => NamedKey::Massyo,
|
||||
keysyms::Kana_Lock => NamedKey::KanaMode,
|
||||
keysyms::Kana_Shift => NamedKey::KanaMode,
|
||||
keysyms::Eisu_Shift => NamedKey::Alphanumeric,
|
||||
keysyms::Eisu_toggle => NamedKey::Alphanumeric,
|
||||
// NOTE: The next three items are aliases for values we've already mapped.
|
||||
// keysyms::Kanji_Bangou => Key::CodeInput,
|
||||
// keysyms::Zen_Koho => Key::AllCandidates,
|
||||
// keysyms::Mae_Koho => Key::PreviousCandidate,
|
||||
// keysyms::Kanji_Bangou => NamedKey::CodeInput,
|
||||
// keysyms::Zen_Koho => NamedKey::AllCandidates,
|
||||
// keysyms::Mae_Koho => NamedKey::PreviousCandidate,
|
||||
|
||||
// Cursor control & motion
|
||||
keysyms::Home => Key::Home,
|
||||
keysyms::Left => Key::ArrowLeft,
|
||||
keysyms::Up => Key::ArrowUp,
|
||||
keysyms::Right => Key::ArrowRight,
|
||||
keysyms::Down => Key::ArrowDown,
|
||||
// keysyms::Prior => Key::PageUp,
|
||||
keysyms::Page_Up => Key::PageUp,
|
||||
// keysyms::Next => Key::PageDown,
|
||||
keysyms::Page_Down => Key::PageDown,
|
||||
keysyms::End => Key::End,
|
||||
// keysyms::Begin => Key::Begin,
|
||||
keysyms::Home => NamedKey::Home,
|
||||
keysyms::Left => NamedKey::ArrowLeft,
|
||||
keysyms::Up => NamedKey::ArrowUp,
|
||||
keysyms::Right => NamedKey::ArrowRight,
|
||||
keysyms::Down => NamedKey::ArrowDown,
|
||||
// keysyms::Prior => NamedKey::PageUp,
|
||||
keysyms::Page_Up => NamedKey::PageUp,
|
||||
// keysyms::Next => NamedKey::PageDown,
|
||||
keysyms::Page_Down => NamedKey::PageDown,
|
||||
keysyms::End => NamedKey::End,
|
||||
// keysyms::Begin => NamedKey::Begin,
|
||||
|
||||
// Misc. functions
|
||||
keysyms::Select => Key::Select,
|
||||
keysyms::Print => Key::PrintScreen,
|
||||
keysyms::Execute => Key::Execute,
|
||||
keysyms::Insert => Key::Insert,
|
||||
keysyms::Undo => Key::Undo,
|
||||
keysyms::Redo => Key::Redo,
|
||||
keysyms::Menu => Key::ContextMenu,
|
||||
keysyms::Find => Key::Find,
|
||||
keysyms::Cancel => Key::Cancel,
|
||||
keysyms::Help => Key::Help,
|
||||
keysyms::Break => Key::Pause,
|
||||
keysyms::Mode_switch => Key::ModeChange,
|
||||
// keysyms::script_switch => Key::ModeChange,
|
||||
keysyms::Num_Lock => Key::NumLock,
|
||||
keysyms::Select => NamedKey::Select,
|
||||
keysyms::Print => NamedKey::PrintScreen,
|
||||
keysyms::Execute => NamedKey::Execute,
|
||||
keysyms::Insert => NamedKey::Insert,
|
||||
keysyms::Undo => NamedKey::Undo,
|
||||
keysyms::Redo => NamedKey::Redo,
|
||||
keysyms::Menu => NamedKey::ContextMenu,
|
||||
keysyms::Find => NamedKey::Find,
|
||||
keysyms::Cancel => NamedKey::Cancel,
|
||||
keysyms::Help => NamedKey::Help,
|
||||
keysyms::Break => NamedKey::Pause,
|
||||
keysyms::Mode_switch => NamedKey::ModeChange,
|
||||
// keysyms::script_switch => NamedKey::ModeChange,
|
||||
keysyms::Num_Lock => NamedKey::NumLock,
|
||||
|
||||
// Keypad keys
|
||||
// keysyms::KP_Space => Key::Character(" "),
|
||||
keysyms::KP_Tab => Key::Tab,
|
||||
keysyms::KP_Enter => Key::Enter,
|
||||
keysyms::KP_F1 => Key::F1,
|
||||
keysyms::KP_F2 => Key::F2,
|
||||
keysyms::KP_F3 => Key::F3,
|
||||
keysyms::KP_F4 => Key::F4,
|
||||
keysyms::KP_Home => Key::Home,
|
||||
keysyms::KP_Left => Key::ArrowLeft,
|
||||
keysyms::KP_Up => Key::ArrowLeft,
|
||||
keysyms::KP_Right => Key::ArrowRight,
|
||||
keysyms::KP_Down => Key::ArrowDown,
|
||||
// keysyms::KP_Prior => Key::PageUp,
|
||||
keysyms::KP_Page_Up => Key::PageUp,
|
||||
// keysyms::KP_Next => Key::PageDown,
|
||||
keysyms::KP_Page_Down => Key::PageDown,
|
||||
keysyms::KP_End => Key::End,
|
||||
// keysyms::KP_Space => return Key::Character(" "),
|
||||
keysyms::KP_Tab => NamedKey::Tab,
|
||||
keysyms::KP_Enter => NamedKey::Enter,
|
||||
keysyms::KP_F1 => NamedKey::F1,
|
||||
keysyms::KP_F2 => NamedKey::F2,
|
||||
keysyms::KP_F3 => NamedKey::F3,
|
||||
keysyms::KP_F4 => NamedKey::F4,
|
||||
keysyms::KP_Home => NamedKey::Home,
|
||||
keysyms::KP_Left => NamedKey::ArrowLeft,
|
||||
keysyms::KP_Up => NamedKey::ArrowLeft,
|
||||
keysyms::KP_Right => NamedKey::ArrowRight,
|
||||
keysyms::KP_Down => NamedKey::ArrowDown,
|
||||
// keysyms::KP_Prior => NamedKey::PageUp,
|
||||
keysyms::KP_Page_Up => NamedKey::PageUp,
|
||||
// keysyms::KP_Next => NamedKey::PageDown,
|
||||
keysyms::KP_Page_Down => NamedKey::PageDown,
|
||||
keysyms::KP_End => NamedKey::End,
|
||||
// This is the key labeled "5" on the numpad when NumLock is off.
|
||||
// keysyms::KP_Begin => Key::Begin,
|
||||
keysyms::KP_Insert => Key::Insert,
|
||||
keysyms::KP_Delete => Key::Delete,
|
||||
// keysyms::KP_Equal => Key::Equal,
|
||||
// keysyms::KP_Multiply => Key::Multiply,
|
||||
// keysyms::KP_Add => Key::Add,
|
||||
// keysyms::KP_Separator => Key::Separator,
|
||||
// keysyms::KP_Subtract => Key::Subtract,
|
||||
// keysyms::KP_Decimal => Key::Decimal,
|
||||
// keysyms::KP_Divide => Key::Divide,
|
||||
// keysyms::KP_Begin => NamedKey::Begin,
|
||||
keysyms::KP_Insert => NamedKey::Insert,
|
||||
keysyms::KP_Delete => NamedKey::Delete,
|
||||
// keysyms::KP_Equal => NamedKey::Equal,
|
||||
// keysyms::KP_Multiply => NamedKey::Multiply,
|
||||
// keysyms::KP_Add => NamedKey::Add,
|
||||
// keysyms::KP_Separator => NamedKey::Separator,
|
||||
// keysyms::KP_Subtract => NamedKey::Subtract,
|
||||
// keysyms::KP_Decimal => NamedKey::Decimal,
|
||||
// keysyms::KP_Divide => NamedKey::Divide,
|
||||
|
||||
// keysyms::KP_0 => Key::Character("0"),
|
||||
// keysyms::KP_1 => Key::Character("1"),
|
||||
// keysyms::KP_2 => Key::Character("2"),
|
||||
// keysyms::KP_3 => Key::Character("3"),
|
||||
// keysyms::KP_4 => Key::Character("4"),
|
||||
// keysyms::KP_5 => Key::Character("5"),
|
||||
// keysyms::KP_6 => Key::Character("6"),
|
||||
// keysyms::KP_7 => Key::Character("7"),
|
||||
// keysyms::KP_8 => Key::Character("8"),
|
||||
// keysyms::KP_9 => Key::Character("9"),
|
||||
// keysyms::KP_0 => return Key::Character("0"),
|
||||
// keysyms::KP_1 => return Key::Character("1"),
|
||||
// keysyms::KP_2 => return Key::Character("2"),
|
||||
// keysyms::KP_3 => return Key::Character("3"),
|
||||
// keysyms::KP_4 => return Key::Character("4"),
|
||||
// keysyms::KP_5 => return Key::Character("5"),
|
||||
// keysyms::KP_6 => return Key::Character("6"),
|
||||
// keysyms::KP_7 => return Key::Character("7"),
|
||||
// keysyms::KP_8 => return Key::Character("8"),
|
||||
// keysyms::KP_9 => return Key::Character("9"),
|
||||
|
||||
// Function keys
|
||||
keysyms::F1 => Key::F1,
|
||||
keysyms::F2 => Key::F2,
|
||||
keysyms::F3 => Key::F3,
|
||||
keysyms::F4 => Key::F4,
|
||||
keysyms::F5 => Key::F5,
|
||||
keysyms::F6 => Key::F6,
|
||||
keysyms::F7 => Key::F7,
|
||||
keysyms::F8 => Key::F8,
|
||||
keysyms::F9 => Key::F9,
|
||||
keysyms::F10 => Key::F10,
|
||||
keysyms::F11 => Key::F11,
|
||||
keysyms::F12 => Key::F12,
|
||||
keysyms::F13 => Key::F13,
|
||||
keysyms::F14 => Key::F14,
|
||||
keysyms::F15 => Key::F15,
|
||||
keysyms::F16 => Key::F16,
|
||||
keysyms::F17 => Key::F17,
|
||||
keysyms::F18 => Key::F18,
|
||||
keysyms::F19 => Key::F19,
|
||||
keysyms::F20 => Key::F20,
|
||||
keysyms::F21 => Key::F21,
|
||||
keysyms::F22 => Key::F22,
|
||||
keysyms::F23 => Key::F23,
|
||||
keysyms::F24 => Key::F24,
|
||||
keysyms::F25 => Key::F25,
|
||||
keysyms::F26 => Key::F26,
|
||||
keysyms::F27 => Key::F27,
|
||||
keysyms::F28 => Key::F28,
|
||||
keysyms::F29 => Key::F29,
|
||||
keysyms::F30 => Key::F30,
|
||||
keysyms::F31 => Key::F31,
|
||||
keysyms::F32 => Key::F32,
|
||||
keysyms::F33 => Key::F33,
|
||||
keysyms::F34 => Key::F34,
|
||||
keysyms::F35 => Key::F35,
|
||||
keysyms::F1 => NamedKey::F1,
|
||||
keysyms::F2 => NamedKey::F2,
|
||||
keysyms::F3 => NamedKey::F3,
|
||||
keysyms::F4 => NamedKey::F4,
|
||||
keysyms::F5 => NamedKey::F5,
|
||||
keysyms::F6 => NamedKey::F6,
|
||||
keysyms::F7 => NamedKey::F7,
|
||||
keysyms::F8 => NamedKey::F8,
|
||||
keysyms::F9 => NamedKey::F9,
|
||||
keysyms::F10 => NamedKey::F10,
|
||||
keysyms::F11 => NamedKey::F11,
|
||||
keysyms::F12 => NamedKey::F12,
|
||||
keysyms::F13 => NamedKey::F13,
|
||||
keysyms::F14 => NamedKey::F14,
|
||||
keysyms::F15 => NamedKey::F15,
|
||||
keysyms::F16 => NamedKey::F16,
|
||||
keysyms::F17 => NamedKey::F17,
|
||||
keysyms::F18 => NamedKey::F18,
|
||||
keysyms::F19 => NamedKey::F19,
|
||||
keysyms::F20 => NamedKey::F20,
|
||||
keysyms::F21 => NamedKey::F21,
|
||||
keysyms::F22 => NamedKey::F22,
|
||||
keysyms::F23 => NamedKey::F23,
|
||||
keysyms::F24 => NamedKey::F24,
|
||||
keysyms::F25 => NamedKey::F25,
|
||||
keysyms::F26 => NamedKey::F26,
|
||||
keysyms::F27 => NamedKey::F27,
|
||||
keysyms::F28 => NamedKey::F28,
|
||||
keysyms::F29 => NamedKey::F29,
|
||||
keysyms::F30 => NamedKey::F30,
|
||||
keysyms::F31 => NamedKey::F31,
|
||||
keysyms::F32 => NamedKey::F32,
|
||||
keysyms::F33 => NamedKey::F33,
|
||||
keysyms::F34 => NamedKey::F34,
|
||||
keysyms::F35 => NamedKey::F35,
|
||||
|
||||
// Modifiers
|
||||
keysyms::Shift_L => Key::Shift,
|
||||
keysyms::Shift_R => Key::Shift,
|
||||
keysyms::Control_L => Key::Control,
|
||||
keysyms::Control_R => Key::Control,
|
||||
keysyms::Caps_Lock => Key::CapsLock,
|
||||
// keysyms::Shift_Lock => Key::ShiftLock,
|
||||
keysyms::Shift_L => NamedKey::Shift,
|
||||
keysyms::Shift_R => NamedKey::Shift,
|
||||
keysyms::Control_L => NamedKey::Control,
|
||||
keysyms::Control_R => NamedKey::Control,
|
||||
keysyms::Caps_Lock => NamedKey::CapsLock,
|
||||
// keysyms::Shift_Lock => NamedKey::ShiftLock,
|
||||
|
||||
// keysyms::Meta_L => Key::Meta,
|
||||
// keysyms::Meta_R => Key::Meta,
|
||||
keysyms::Alt_L => Key::Alt,
|
||||
keysyms::Alt_R => Key::Alt,
|
||||
keysyms::Super_L => Key::Super,
|
||||
keysyms::Super_R => Key::Super,
|
||||
keysyms::Hyper_L => Key::Hyper,
|
||||
keysyms::Hyper_R => Key::Hyper,
|
||||
// keysyms::Meta_L => NamedKey::Meta,
|
||||
// keysyms::Meta_R => NamedKey::Meta,
|
||||
keysyms::Alt_L => NamedKey::Alt,
|
||||
keysyms::Alt_R => NamedKey::Alt,
|
||||
keysyms::Super_L => NamedKey::Super,
|
||||
keysyms::Super_R => NamedKey::Super,
|
||||
keysyms::Hyper_L => NamedKey::Hyper,
|
||||
keysyms::Hyper_R => NamedKey::Hyper,
|
||||
|
||||
// XKB function and modifier keys
|
||||
// keysyms::ISO_Lock => Key::IsoLock,
|
||||
// keysyms::ISO_Level2_Latch => Key::IsoLevel2Latch,
|
||||
keysyms::ISO_Level3_Shift => Key::AltGraph,
|
||||
keysyms::ISO_Level3_Latch => Key::AltGraph,
|
||||
keysyms::ISO_Level3_Lock => Key::AltGraph,
|
||||
// keysyms::ISO_Level5_Shift => Key::IsoLevel5Shift,
|
||||
// keysyms::ISO_Level5_Latch => Key::IsoLevel5Latch,
|
||||
// keysyms::ISO_Level5_Lock => Key::IsoLevel5Lock,
|
||||
// keysyms::ISO_Group_Shift => Key::IsoGroupShift,
|
||||
// keysyms::ISO_Group_Latch => Key::IsoGroupLatch,
|
||||
// keysyms::ISO_Group_Lock => Key::IsoGroupLock,
|
||||
keysyms::ISO_Next_Group => Key::GroupNext,
|
||||
// keysyms::ISO_Next_Group_Lock => Key::GroupNextLock,
|
||||
keysyms::ISO_Prev_Group => Key::GroupPrevious,
|
||||
// keysyms::ISO_Prev_Group_Lock => Key::GroupPreviousLock,
|
||||
keysyms::ISO_First_Group => Key::GroupFirst,
|
||||
// keysyms::ISO_First_Group_Lock => Key::GroupFirstLock,
|
||||
keysyms::ISO_Last_Group => Key::GroupLast,
|
||||
// keysyms::ISO_Last_Group_Lock => Key::GroupLastLock,
|
||||
// keysyms::ISO_Lock => NamedKey::IsoLock,
|
||||
// keysyms::ISO_Level2_Latch => NamedKey::IsoLevel2Latch,
|
||||
keysyms::ISO_Level3_Shift => NamedKey::AltGraph,
|
||||
keysyms::ISO_Level3_Latch => NamedKey::AltGraph,
|
||||
keysyms::ISO_Level3_Lock => NamedKey::AltGraph,
|
||||
// keysyms::ISO_Level5_Shift => NamedKey::IsoLevel5Shift,
|
||||
// keysyms::ISO_Level5_Latch => NamedKey::IsoLevel5Latch,
|
||||
// keysyms::ISO_Level5_Lock => NamedKey::IsoLevel5Lock,
|
||||
// keysyms::ISO_Group_Shift => NamedKey::IsoGroupShift,
|
||||
// keysyms::ISO_Group_Latch => NamedKey::IsoGroupLatch,
|
||||
// keysyms::ISO_Group_Lock => NamedKey::IsoGroupLock,
|
||||
keysyms::ISO_Next_Group => NamedKey::GroupNext,
|
||||
// keysyms::ISO_Next_Group_Lock => NamedKey::GroupNextLock,
|
||||
keysyms::ISO_Prev_Group => NamedKey::GroupPrevious,
|
||||
// keysyms::ISO_Prev_Group_Lock => NamedKey::GroupPreviousLock,
|
||||
keysyms::ISO_First_Group => NamedKey::GroupFirst,
|
||||
// keysyms::ISO_First_Group_Lock => NamedKey::GroupFirstLock,
|
||||
keysyms::ISO_Last_Group => NamedKey::GroupLast,
|
||||
// keysyms::ISO_Last_Group_Lock => NamedKey::GroupLastLock,
|
||||
//
|
||||
keysyms::ISO_Left_Tab => Key::Tab,
|
||||
// keysyms::ISO_Move_Line_Up => Key::IsoMoveLineUp,
|
||||
// keysyms::ISO_Move_Line_Down => Key::IsoMoveLineDown,
|
||||
// keysyms::ISO_Partial_Line_Up => Key::IsoPartialLineUp,
|
||||
// keysyms::ISO_Partial_Line_Down => Key::IsoPartialLineDown,
|
||||
// keysyms::ISO_Partial_Space_Left => Key::IsoPartialSpaceLeft,
|
||||
// keysyms::ISO_Partial_Space_Right => Key::IsoPartialSpaceRight,
|
||||
// keysyms::ISO_Set_Margin_Left => Key::IsoSetMarginLeft,
|
||||
// keysyms::ISO_Set_Margin_Right => Key::IsoSetMarginRight,
|
||||
// keysyms::ISO_Release_Margin_Left => Key::IsoReleaseMarginLeft,
|
||||
// keysyms::ISO_Release_Margin_Right => Key::IsoReleaseMarginRight,
|
||||
// keysyms::ISO_Release_Both_Margins => Key::IsoReleaseBothMargins,
|
||||
// keysyms::ISO_Fast_Cursor_Left => Key::IsoFastCursorLeft,
|
||||
// keysyms::ISO_Fast_Cursor_Right => Key::IsoFastCursorRight,
|
||||
// keysyms::ISO_Fast_Cursor_Up => Key::IsoFastCursorUp,
|
||||
// keysyms::ISO_Fast_Cursor_Down => Key::IsoFastCursorDown,
|
||||
// keysyms::ISO_Continuous_Underline => Key::IsoContinuousUnderline,
|
||||
// keysyms::ISO_Discontinuous_Underline => Key::IsoDiscontinuousUnderline,
|
||||
// keysyms::ISO_Emphasize => Key::IsoEmphasize,
|
||||
// keysyms::ISO_Center_Object => Key::IsoCenterObject,
|
||||
keysyms::ISO_Enter => Key::Enter,
|
||||
keysyms::ISO_Left_Tab => NamedKey::Tab,
|
||||
// keysyms::ISO_Move_Line_Up => NamedKey::IsoMoveLineUp,
|
||||
// keysyms::ISO_Move_Line_Down => NamedKey::IsoMoveLineDown,
|
||||
// keysyms::ISO_Partial_Line_Up => NamedKey::IsoPartialLineUp,
|
||||
// keysyms::ISO_Partial_Line_Down => NamedKey::IsoPartialLineDown,
|
||||
// keysyms::ISO_Partial_Space_Left => NamedKey::IsoPartialSpaceLeft,
|
||||
// keysyms::ISO_Partial_Space_Right => NamedKey::IsoPartialSpaceRight,
|
||||
// keysyms::ISO_Set_Margin_Left => NamedKey::IsoSetMarginLeft,
|
||||
// keysyms::ISO_Set_Margin_Right => NamedKey::IsoSetMarginRight,
|
||||
// keysyms::ISO_Release_Margin_Left => NamedKey::IsoReleaseMarginLeft,
|
||||
// keysyms::ISO_Release_Margin_Right => NamedKey::IsoReleaseMarginRight,
|
||||
// keysyms::ISO_Release_Both_Margins => NamedKey::IsoReleaseBothMargins,
|
||||
// keysyms::ISO_Fast_Cursor_Left => NamedKey::IsoFastCursorLeft,
|
||||
// keysyms::ISO_Fast_Cursor_Right => NamedKey::IsoFastCursorRight,
|
||||
// keysyms::ISO_Fast_Cursor_Up => NamedKey::IsoFastCursorUp,
|
||||
// keysyms::ISO_Fast_Cursor_Down => NamedKey::IsoFastCursorDown,
|
||||
// keysyms::ISO_Continuous_Underline => NamedKey::IsoContinuousUnderline,
|
||||
// keysyms::ISO_Discontinuous_Underline => NamedKey::IsoDiscontinuousUnderline,
|
||||
// keysyms::ISO_Emphasize => NamedKey::IsoEmphasize,
|
||||
// keysyms::ISO_Center_Object => NamedKey::IsoCenterObject,
|
||||
keysyms::ISO_Enter => NamedKey::Enter,
|
||||
|
||||
// dead_grave..dead_currency
|
||||
|
||||
|
|
@ -642,194 +651,194 @@ pub fn keysym_to_key(keysym: u32) -> Key {
|
|||
// ch..C_H
|
||||
|
||||
// 3270 terminal keys
|
||||
// keysyms::3270_Duplicate => Key::Duplicate,
|
||||
// keysyms::3270_FieldMark => Key::FieldMark,
|
||||
// keysyms::3270_Right2 => Key::Right2,
|
||||
// keysyms::3270_Left2 => Key::Left2,
|
||||
// keysyms::3270_BackTab => Key::BackTab,
|
||||
keysyms::_3270_EraseEOF => Key::EraseEof,
|
||||
// keysyms::3270_EraseInput => Key::EraseInput,
|
||||
// keysyms::3270_Reset => Key::Reset,
|
||||
// keysyms::3270_Quit => Key::Quit,
|
||||
// keysyms::3270_PA1 => Key::Pa1,
|
||||
// keysyms::3270_PA2 => Key::Pa2,
|
||||
// keysyms::3270_PA3 => Key::Pa3,
|
||||
// keysyms::3270_Test => Key::Test,
|
||||
keysyms::_3270_Attn => Key::Attn,
|
||||
// keysyms::3270_CursorBlink => Key::CursorBlink,
|
||||
// keysyms::3270_AltCursor => Key::AltCursor,
|
||||
// keysyms::3270_KeyClick => Key::KeyClick,
|
||||
// keysyms::3270_Jump => Key::Jump,
|
||||
// keysyms::3270_Ident => Key::Ident,
|
||||
// keysyms::3270_Rule => Key::Rule,
|
||||
// keysyms::3270_Copy => Key::Copy,
|
||||
keysyms::_3270_Play => Key::Play,
|
||||
// keysyms::3270_Setup => Key::Setup,
|
||||
// keysyms::3270_Record => Key::Record,
|
||||
// keysyms::3270_ChangeScreen => Key::ChangeScreen,
|
||||
// keysyms::3270_DeleteWord => Key::DeleteWord,
|
||||
keysyms::_3270_ExSelect => Key::ExSel,
|
||||
keysyms::_3270_CursorSelect => Key::CrSel,
|
||||
keysyms::_3270_PrintScreen => Key::PrintScreen,
|
||||
keysyms::_3270_Enter => Key::Enter,
|
||||
// keysyms::3270_Duplicate => NamedKey::Duplicate,
|
||||
// keysyms::3270_FieldMark => NamedKey::FieldMark,
|
||||
// keysyms::3270_Right2 => NamedKey::Right2,
|
||||
// keysyms::3270_Left2 => NamedKey::Left2,
|
||||
// keysyms::3270_BackTab => NamedKey::BackTab,
|
||||
keysyms::_3270_EraseEOF => NamedKey::EraseEof,
|
||||
// keysyms::3270_EraseInput => NamedKey::EraseInput,
|
||||
// keysyms::3270_Reset => NamedKey::Reset,
|
||||
// keysyms::3270_Quit => NamedKey::Quit,
|
||||
// keysyms::3270_PA1 => NamedKey::Pa1,
|
||||
// keysyms::3270_PA2 => NamedKey::Pa2,
|
||||
// keysyms::3270_PA3 => NamedKey::Pa3,
|
||||
// keysyms::3270_Test => NamedKey::Test,
|
||||
keysyms::_3270_Attn => NamedKey::Attn,
|
||||
// keysyms::3270_CursorBlink => NamedKey::CursorBlink,
|
||||
// keysyms::3270_AltCursor => NamedKey::AltCursor,
|
||||
// keysyms::3270_KeyClick => NamedKey::KeyClick,
|
||||
// keysyms::3270_Jump => NamedKey::Jump,
|
||||
// keysyms::3270_Ident => NamedKey::Ident,
|
||||
// keysyms::3270_Rule => NamedKey::Rule,
|
||||
// keysyms::3270_Copy => NamedKey::Copy,
|
||||
keysyms::_3270_Play => NamedKey::Play,
|
||||
// keysyms::3270_Setup => NamedKey::Setup,
|
||||
// keysyms::3270_Record => NamedKey::Record,
|
||||
// keysyms::3270_ChangeScreen => NamedKey::ChangeScreen,
|
||||
// keysyms::3270_DeleteWord => NamedKey::DeleteWord,
|
||||
keysyms::_3270_ExSelect => NamedKey::ExSel,
|
||||
keysyms::_3270_CursorSelect => NamedKey::CrSel,
|
||||
keysyms::_3270_PrintScreen => NamedKey::PrintScreen,
|
||||
keysyms::_3270_Enter => NamedKey::Enter,
|
||||
|
||||
keysyms::space => Key::Space,
|
||||
keysyms::space => NamedKey::Space,
|
||||
// exclam..Sinh_kunddaliya
|
||||
|
||||
// XFree86
|
||||
// keysyms::XF86_ModeLock => Key::ModeLock,
|
||||
// keysyms::XF86_ModeLock => NamedKey::ModeLock,
|
||||
|
||||
// XFree86 - Backlight controls
|
||||
keysyms::XF86_MonBrightnessUp => Key::BrightnessUp,
|
||||
keysyms::XF86_MonBrightnessDown => Key::BrightnessDown,
|
||||
// keysyms::XF86_KbdLightOnOff => Key::LightOnOff,
|
||||
// keysyms::XF86_KbdBrightnessUp => Key::KeyboardBrightnessUp,
|
||||
// keysyms::XF86_KbdBrightnessDown => Key::KeyboardBrightnessDown,
|
||||
keysyms::XF86_MonBrightnessUp => NamedKey::BrightnessUp,
|
||||
keysyms::XF86_MonBrightnessDown => NamedKey::BrightnessDown,
|
||||
// keysyms::XF86_KbdLightOnOff => NamedKey::LightOnOff,
|
||||
// keysyms::XF86_KbdBrightnessUp => NamedKey::KeyboardBrightnessUp,
|
||||
// keysyms::XF86_KbdBrightnessDown => NamedKey::KeyboardBrightnessDown,
|
||||
|
||||
// XFree86 - "Internet"
|
||||
keysyms::XF86_Standby => Key::Standby,
|
||||
keysyms::XF86_AudioLowerVolume => Key::AudioVolumeDown,
|
||||
keysyms::XF86_AudioRaiseVolume => Key::AudioVolumeUp,
|
||||
keysyms::XF86_AudioPlay => Key::MediaPlay,
|
||||
keysyms::XF86_AudioStop => Key::MediaStop,
|
||||
keysyms::XF86_AudioPrev => Key::MediaTrackPrevious,
|
||||
keysyms::XF86_AudioNext => Key::MediaTrackNext,
|
||||
keysyms::XF86_HomePage => Key::BrowserHome,
|
||||
keysyms::XF86_Mail => Key::LaunchMail,
|
||||
// keysyms::XF86_Start => Key::Start,
|
||||
keysyms::XF86_Search => Key::BrowserSearch,
|
||||
keysyms::XF86_AudioRecord => Key::MediaRecord,
|
||||
keysyms::XF86_Standby => NamedKey::Standby,
|
||||
keysyms::XF86_AudioLowerVolume => NamedKey::AudioVolumeDown,
|
||||
keysyms::XF86_AudioRaiseVolume => NamedKey::AudioVolumeUp,
|
||||
keysyms::XF86_AudioPlay => NamedKey::MediaPlay,
|
||||
keysyms::XF86_AudioStop => NamedKey::MediaStop,
|
||||
keysyms::XF86_AudioPrev => NamedKey::MediaTrackPrevious,
|
||||
keysyms::XF86_AudioNext => NamedKey::MediaTrackNext,
|
||||
keysyms::XF86_HomePage => NamedKey::BrowserHome,
|
||||
keysyms::XF86_Mail => NamedKey::LaunchMail,
|
||||
// keysyms::XF86_Start => NamedKey::Start,
|
||||
keysyms::XF86_Search => NamedKey::BrowserSearch,
|
||||
keysyms::XF86_AudioRecord => NamedKey::MediaRecord,
|
||||
|
||||
// XFree86 - PDA
|
||||
keysyms::XF86_Calculator => Key::LaunchApplication2,
|
||||
// keysyms::XF86_Memo => Key::Memo,
|
||||
// keysyms::XF86_ToDoList => Key::ToDoList,
|
||||
keysyms::XF86_Calendar => Key::LaunchCalendar,
|
||||
keysyms::XF86_PowerDown => Key::Power,
|
||||
// keysyms::XF86_ContrastAdjust => Key::AdjustContrast,
|
||||
// keysyms::XF86_RockerUp => Key::RockerUp,
|
||||
// keysyms::XF86_RockerDown => Key::RockerDown,
|
||||
// keysyms::XF86_RockerEnter => Key::RockerEnter,
|
||||
keysyms::XF86_Calculator => NamedKey::LaunchApplication2,
|
||||
// keysyms::XF86_Memo => NamedKey::Memo,
|
||||
// keysyms::XF86_ToDoList => NamedKey::ToDoList,
|
||||
keysyms::XF86_Calendar => NamedKey::LaunchCalendar,
|
||||
keysyms::XF86_PowerDown => NamedKey::Power,
|
||||
// keysyms::XF86_ContrastAdjust => NamedKey::AdjustContrast,
|
||||
// keysyms::XF86_RockerUp => NamedKey::RockerUp,
|
||||
// keysyms::XF86_RockerDown => NamedKey::RockerDown,
|
||||
// keysyms::XF86_RockerEnter => NamedKey::RockerEnter,
|
||||
|
||||
// XFree86 - More "Internet"
|
||||
keysyms::XF86_Back => Key::BrowserBack,
|
||||
keysyms::XF86_Forward => Key::BrowserForward,
|
||||
// keysyms::XF86_Stop => Key::Stop,
|
||||
keysyms::XF86_Refresh => Key::BrowserRefresh,
|
||||
keysyms::XF86_PowerOff => Key::Power,
|
||||
keysyms::XF86_WakeUp => Key::WakeUp,
|
||||
keysyms::XF86_Eject => Key::Eject,
|
||||
keysyms::XF86_ScreenSaver => Key::LaunchScreenSaver,
|
||||
keysyms::XF86_WWW => Key::LaunchWebBrowser,
|
||||
keysyms::XF86_Sleep => Key::Standby,
|
||||
keysyms::XF86_Favorites => Key::BrowserFavorites,
|
||||
keysyms::XF86_AudioPause => Key::MediaPause,
|
||||
// keysyms::XF86_AudioMedia => Key::AudioMedia,
|
||||
keysyms::XF86_MyComputer => Key::LaunchApplication1,
|
||||
// keysyms::XF86_VendorHome => Key::VendorHome,
|
||||
// keysyms::XF86_LightBulb => Key::LightBulb,
|
||||
// keysyms::XF86_Shop => Key::BrowserShop,
|
||||
// keysyms::XF86_History => Key::BrowserHistory,
|
||||
// keysyms::XF86_OpenURL => Key::OpenUrl,
|
||||
// keysyms::XF86_AddFavorite => Key::AddFavorite,
|
||||
// keysyms::XF86_HotLinks => Key::HotLinks,
|
||||
// keysyms::XF86_BrightnessAdjust => Key::BrightnessAdjust,
|
||||
// keysyms::XF86_Finance => Key::BrowserFinance,
|
||||
// keysyms::XF86_Community => Key::BrowserCommunity,
|
||||
keysyms::XF86_AudioRewind => Key::MediaRewind,
|
||||
keysyms::XF86_Back => NamedKey::BrowserBack,
|
||||
keysyms::XF86_Forward => NamedKey::BrowserForward,
|
||||
// keysyms::XF86_Stop => NamedKey::Stop,
|
||||
keysyms::XF86_Refresh => NamedKey::BrowserRefresh,
|
||||
keysyms::XF86_PowerOff => NamedKey::Power,
|
||||
keysyms::XF86_WakeUp => NamedKey::WakeUp,
|
||||
keysyms::XF86_Eject => NamedKey::Eject,
|
||||
keysyms::XF86_ScreenSaver => NamedKey::LaunchScreenSaver,
|
||||
keysyms::XF86_WWW => NamedKey::LaunchWebBrowser,
|
||||
keysyms::XF86_Sleep => NamedKey::Standby,
|
||||
keysyms::XF86_Favorites => NamedKey::BrowserFavorites,
|
||||
keysyms::XF86_AudioPause => NamedKey::MediaPause,
|
||||
// keysyms::XF86_AudioMedia => NamedKey::AudioMedia,
|
||||
keysyms::XF86_MyComputer => NamedKey::LaunchApplication1,
|
||||
// keysyms::XF86_VendorHome => NamedKey::VendorHome,
|
||||
// keysyms::XF86_LightBulb => NamedKey::LightBulb,
|
||||
// keysyms::XF86_Shop => NamedKey::BrowserShop,
|
||||
// keysyms::XF86_History => NamedKey::BrowserHistory,
|
||||
// keysyms::XF86_OpenURL => NamedKey::OpenUrl,
|
||||
// keysyms::XF86_AddFavorite => NamedKey::AddFavorite,
|
||||
// keysyms::XF86_HotLinks => NamedKey::HotLinks,
|
||||
// keysyms::XF86_BrightnessAdjust => NamedKey::BrightnessAdjust,
|
||||
// keysyms::XF86_Finance => NamedKey::BrowserFinance,
|
||||
// keysyms::XF86_Community => NamedKey::BrowserCommunity,
|
||||
keysyms::XF86_AudioRewind => NamedKey::MediaRewind,
|
||||
// keysyms::XF86_BackForward => Key::???,
|
||||
// XF86_Launch0..XF86_LaunchF
|
||||
|
||||
// XF86_ApplicationLeft..XF86_CD
|
||||
keysyms::XF86_Calculater => Key::LaunchApplication2, // Nice typo, libxkbcommon :)
|
||||
keysyms::XF86_Calculater => NamedKey::LaunchApplication2, // Nice typo, libxkbcommon :)
|
||||
// XF86_Clear
|
||||
keysyms::XF86_Close => Key::Close,
|
||||
keysyms::XF86_Copy => Key::Copy,
|
||||
keysyms::XF86_Cut => Key::Cut,
|
||||
keysyms::XF86_Close => NamedKey::Close,
|
||||
keysyms::XF86_Copy => NamedKey::Copy,
|
||||
keysyms::XF86_Cut => NamedKey::Cut,
|
||||
// XF86_Display..XF86_Documents
|
||||
keysyms::XF86_Excel => Key::LaunchSpreadsheet,
|
||||
keysyms::XF86_Excel => NamedKey::LaunchSpreadsheet,
|
||||
// XF86_Explorer..XF86iTouch
|
||||
keysyms::XF86_LogOff => Key::LogOff,
|
||||
keysyms::XF86_LogOff => NamedKey::LogOff,
|
||||
// XF86_Market..XF86_MenuPB
|
||||
keysyms::XF86_MySites => Key::BrowserFavorites,
|
||||
keysyms::XF86_New => Key::New,
|
||||
keysyms::XF86_MySites => NamedKey::BrowserFavorites,
|
||||
keysyms::XF86_New => NamedKey::New,
|
||||
// XF86_News..XF86_OfficeHome
|
||||
keysyms::XF86_Open => Key::Open,
|
||||
keysyms::XF86_Open => NamedKey::Open,
|
||||
// XF86_Option
|
||||
keysyms::XF86_Paste => Key::Paste,
|
||||
keysyms::XF86_Phone => Key::LaunchPhone,
|
||||
keysyms::XF86_Paste => NamedKey::Paste,
|
||||
keysyms::XF86_Phone => NamedKey::LaunchPhone,
|
||||
// XF86_Q
|
||||
keysyms::XF86_Reply => Key::MailReply,
|
||||
keysyms::XF86_Reload => Key::BrowserRefresh,
|
||||
keysyms::XF86_Reply => NamedKey::MailReply,
|
||||
keysyms::XF86_Reload => NamedKey::BrowserRefresh,
|
||||
// XF86_RotateWindows..XF86_RotationKB
|
||||
keysyms::XF86_Save => Key::Save,
|
||||
keysyms::XF86_Save => NamedKey::Save,
|
||||
// XF86_ScrollUp..XF86_ScrollClick
|
||||
keysyms::XF86_Send => Key::MailSend,
|
||||
keysyms::XF86_Spell => Key::SpellCheck,
|
||||
keysyms::XF86_SplitScreen => Key::SplitScreenToggle,
|
||||
keysyms::XF86_Send => NamedKey::MailSend,
|
||||
keysyms::XF86_Spell => NamedKey::SpellCheck,
|
||||
keysyms::XF86_SplitScreen => NamedKey::SplitScreenToggle,
|
||||
// XF86_Support..XF86_User2KB
|
||||
keysyms::XF86_Video => Key::LaunchMediaPlayer,
|
||||
keysyms::XF86_Video => NamedKey::LaunchMediaPlayer,
|
||||
// XF86_WheelButton
|
||||
keysyms::XF86_Word => Key::LaunchWordProcessor,
|
||||
keysyms::XF86_Word => NamedKey::LaunchWordProcessor,
|
||||
// XF86_Xfer
|
||||
keysyms::XF86_ZoomIn => Key::ZoomIn,
|
||||
keysyms::XF86_ZoomOut => Key::ZoomOut,
|
||||
keysyms::XF86_ZoomIn => NamedKey::ZoomIn,
|
||||
keysyms::XF86_ZoomOut => NamedKey::ZoomOut,
|
||||
|
||||
// XF86_Away..XF86_Messenger
|
||||
keysyms::XF86_WebCam => Key::LaunchWebCam,
|
||||
keysyms::XF86_MailForward => Key::MailForward,
|
||||
keysyms::XF86_WebCam => NamedKey::LaunchWebCam,
|
||||
keysyms::XF86_MailForward => NamedKey::MailForward,
|
||||
// XF86_Pictures
|
||||
keysyms::XF86_Music => Key::LaunchMusicPlayer,
|
||||
keysyms::XF86_Music => NamedKey::LaunchMusicPlayer,
|
||||
|
||||
// XF86_Battery..XF86_UWB
|
||||
//
|
||||
keysyms::XF86_AudioForward => Key::MediaFastForward,
|
||||
keysyms::XF86_AudioForward => NamedKey::MediaFastForward,
|
||||
// XF86_AudioRepeat
|
||||
keysyms::XF86_AudioRandomPlay => Key::RandomToggle,
|
||||
keysyms::XF86_Subtitle => Key::Subtitle,
|
||||
keysyms::XF86_AudioCycleTrack => Key::MediaAudioTrack,
|
||||
keysyms::XF86_AudioRandomPlay => NamedKey::RandomToggle,
|
||||
keysyms::XF86_Subtitle => NamedKey::Subtitle,
|
||||
keysyms::XF86_AudioCycleTrack => NamedKey::MediaAudioTrack,
|
||||
// XF86_CycleAngle..XF86_Blue
|
||||
//
|
||||
keysyms::XF86_Suspend => Key::Standby,
|
||||
keysyms::XF86_Hibernate => Key::Hibernate,
|
||||
keysyms::XF86_Suspend => NamedKey::Standby,
|
||||
keysyms::XF86_Hibernate => NamedKey::Hibernate,
|
||||
// XF86_TouchpadToggle..XF86_TouchpadOff
|
||||
//
|
||||
keysyms::XF86_AudioMute => Key::AudioVolumeMute,
|
||||
keysyms::XF86_AudioMute => NamedKey::AudioVolumeMute,
|
||||
|
||||
// XF86_Switch_VT_1..XF86_Switch_VT_12
|
||||
|
||||
// XF86_Ungrab..XF86_ClearGrab
|
||||
keysyms::XF86_Next_VMode => Key::VideoModeNext,
|
||||
// keysyms::XF86_Prev_VMode => Key::VideoModePrevious,
|
||||
keysyms::XF86_Next_VMode => NamedKey::VideoModeNext,
|
||||
// keysyms::XF86_Prev_VMode => NamedKey::VideoModePrevious,
|
||||
// XF86_LogWindowTree..XF86_LogGrabInfo
|
||||
|
||||
// SunFA_Grave..SunFA_Cedilla
|
||||
|
||||
// keysyms::SunF36 => Key::F36 | Key::F11,
|
||||
// keysyms::SunF37 => Key::F37 | Key::F12,
|
||||
// keysyms::SunF36 => NamedKey::F36 | NamedKey::F11,
|
||||
// keysyms::SunF37 => NamedKey::F37 | NamedKey::F12,
|
||||
|
||||
// keysyms::SunSys_Req => Key::PrintScreen,
|
||||
// keysyms::SunSys_Req => NamedKey::PrintScreen,
|
||||
// The next couple of xkb (until SunStop) are already handled.
|
||||
// SunPrint_Screen..SunPageDown
|
||||
|
||||
// SunUndo..SunFront
|
||||
keysyms::SUN_Copy => Key::Copy,
|
||||
keysyms::SUN_Open => Key::Open,
|
||||
keysyms::SUN_Paste => Key::Paste,
|
||||
keysyms::SUN_Cut => Key::Cut,
|
||||
keysyms::SUN_Copy => NamedKey::Copy,
|
||||
keysyms::SUN_Open => NamedKey::Open,
|
||||
keysyms::SUN_Paste => NamedKey::Paste,
|
||||
keysyms::SUN_Cut => NamedKey::Cut,
|
||||
|
||||
// SunPowerSwitch
|
||||
keysyms::SUN_AudioLowerVolume => Key::AudioVolumeDown,
|
||||
keysyms::SUN_AudioMute => Key::AudioVolumeMute,
|
||||
keysyms::SUN_AudioRaiseVolume => Key::AudioVolumeUp,
|
||||
keysyms::SUN_AudioLowerVolume => NamedKey::AudioVolumeDown,
|
||||
keysyms::SUN_AudioMute => NamedKey::AudioVolumeMute,
|
||||
keysyms::SUN_AudioRaiseVolume => NamedKey::AudioVolumeUp,
|
||||
// SUN_VideoDegauss
|
||||
keysyms::SUN_VideoLowerBrightness => Key::BrightnessDown,
|
||||
keysyms::SUN_VideoRaiseBrightness => Key::BrightnessUp,
|
||||
keysyms::SUN_VideoLowerBrightness => NamedKey::BrightnessDown,
|
||||
keysyms::SUN_VideoRaiseBrightness => NamedKey::BrightnessUp,
|
||||
// SunPowerSwitchShift
|
||||
//
|
||||
0 => Key::Unidentified(NativeKey::Unidentified),
|
||||
_ => Key::Unidentified(NativeKey::Xkb(keysym)),
|
||||
}
|
||||
0 => return Key::Unidentified(NativeKey::Unidentified),
|
||||
_ => return Key::Unidentified(NativeKey::Xkb(keysym)),
|
||||
})
|
||||
}
|
||||
|
||||
pub fn keysym_location(keysym: u32) -> KeyLocation {
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ use crate::platform_impl::common::keymap;
|
|||
use crate::platform_impl::KeyEventExtra;
|
||||
use crate::{
|
||||
event::ElementState,
|
||||
keyboard::{Key, KeyCode, KeyLocation},
|
||||
keyboard::{Key, KeyLocation, PhysicalKey},
|
||||
};
|
||||
|
||||
// TODO: Wire this up without using a static `AtomicBool`.
|
||||
|
|
@ -391,7 +391,7 @@ impl KbdState {
|
|||
) -> KeyEvent {
|
||||
let mut event =
|
||||
KeyEventResults::new(self, keycode, !repeat && state == ElementState::Pressed);
|
||||
let physical_key = event.keycode();
|
||||
let physical_key = event.physical_key();
|
||||
let (logical_key, location) = event.key();
|
||||
let text = event.text();
|
||||
let (key_without_modifiers, _) = event.key_without_modifiers();
|
||||
|
|
@ -498,8 +498,8 @@ impl<'a> KeyEventResults<'a> {
|
|||
}
|
||||
}
|
||||
|
||||
fn keycode(&mut self) -> KeyCode {
|
||||
keymap::raw_keycode_to_keycode(self.keycode)
|
||||
fn physical_key(&mut self) -> PhysicalKey {
|
||||
keymap::raw_keycode_to_physicalkey(self.keycode)
|
||||
}
|
||||
|
||||
pub fn key(&mut self) -> (Key, KeyLocation) {
|
||||
|
|
|
|||
|
|
@ -25,10 +25,10 @@ use crate::{
|
|||
EventLoopWindowTarget as RootELW,
|
||||
},
|
||||
icon::Icon,
|
||||
keyboard::{Key, KeyCode},
|
||||
keyboard::{Key, PhysicalKey},
|
||||
platform::{
|
||||
modifier_supplement::KeyEventExtModifierSupplement, pump_events::PumpStatus,
|
||||
scancode::KeyCodeExtScancode,
|
||||
scancode::PhysicalKeyExtScancode,
|
||||
},
|
||||
window::{
|
||||
ActivationToken, CursorGrabMode, CursorIcon, ImePurpose, ResizeDirection, Theme,
|
||||
|
|
@ -657,13 +657,13 @@ impl KeyEventExtModifierSupplement for KeyEvent {
|
|||
}
|
||||
}
|
||||
|
||||
impl KeyCodeExtScancode for KeyCode {
|
||||
fn from_scancode(scancode: u32) -> KeyCode {
|
||||
impl PhysicalKeyExtScancode for PhysicalKey {
|
||||
fn from_scancode(scancode: u32) -> PhysicalKey {
|
||||
common::keymap::scancode_to_keycode(scancode)
|
||||
}
|
||||
|
||||
fn to_scancode(self) -> Option<u32> {
|
||||
common::keymap::keycode_to_scancode(self)
|
||||
common::keymap::physicalkey_to_scancode(self)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1201,7 +1201,7 @@ impl<T: 'static> EventProcessor<T> {
|
|||
if keycode < KEYCODE_OFFSET as u32 {
|
||||
return;
|
||||
}
|
||||
let physical_key = keymap::raw_keycode_to_keycode(keycode);
|
||||
let physical_key = keymap::raw_keycode_to_physicalkey(keycode);
|
||||
|
||||
callback(Event::DeviceEvent {
|
||||
device_id,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue