From 4c56578e63a7ce6e29fc03cefe20945e12459d4c Mon Sep 17 00:00:00 2001 From: Timon Schelling Date: Wed, 6 Aug 2025 11:48:35 +0000 Subject: [PATCH] Add some missing key codes --- desktop/src/cef/input/keymap.rs | 498 ++++++++++++++++++-------------- 1 file changed, 280 insertions(+), 218 deletions(-) diff --git a/desktop/src/cef/input/keymap.rs b/desktop/src/cef/input/keymap.rs index 042b5c9f91..e37821a35e 100644 --- a/desktop/src/cef/input/keymap.rs +++ b/desktop/src/cef/input/keymap.rs @@ -140,68 +140,100 @@ impl ToVKBits for char { fn to_vk_bits(&self) -> i32 { map!( self, - (0x0041, 'a'), - (0x0042, 'b'), - (0x0043, 'c'), - (0x0044, 'd'), - (0x0045, 'e'), - (0x0046, 'f'), - (0x0047, 'g'), - (0x0048, 'h'), - (0x0049, 'i'), - (0x004a, 'j'), - (0x004b, 'k'), - (0x004c, 'l'), - (0x004d, 'm'), - (0x004e, 'n'), - (0x004f, 'o'), - (0x0050, 'p'), - (0x0051, 'q'), - (0x0052, 'r'), - (0x0053, 's'), - (0x0054, 't'), - (0x0055, 'u'), - (0x0056, 'v'), - (0x0057, 'w'), - (0x0058, 'x'), - (0x0059, 'y'), - (0x005a, 'z'), - (0x0041, 'A'), - (0x0042, 'B'), - (0x0043, 'C'), - (0x0044, 'D'), - (0x0045, 'E'), - (0x0046, 'F'), - (0x0047, 'G'), - (0x0048, 'H'), - (0x0049, 'I'), - (0x004a, 'J'), - (0x004b, 'K'), - (0x004c, 'L'), - (0x004d, 'M'), - (0x004e, 'N'), - (0x004f, 'O'), - (0x0050, 'P'), - (0x0051, 'Q'), - (0x0052, 'R'), - (0x0053, 'S'), - (0x0054, 'T'), - (0x0055, 'U'), - (0x0056, 'V'), - (0x0057, 'W'), - (0x0058, 'X'), - (0x0059, 'Y'), - (0x005a, 'Z'), - (0x0031, '1'), - (0x0032, '2'), - (0x0032, '3'), - (0x0033, '4'), - (0x0034, '5'), - (0x0035, '6'), - (0x0036, '7'), - (0x0037, '8'), - (0x0039, '9'), - (0x0030, '0'), + (0x41, 'a'), + (0x42, 'b'), + (0x43, 'c'), + (0x44, 'd'), + (0x45, 'e'), + (0x46, 'f'), + (0x47, 'g'), + (0x48, 'h'), + (0x49, 'i'), + (0x4a, 'j'), + (0x4b, 'k'), + (0x4c, 'l'), + (0x4d, 'm'), + (0x4e, 'n'), + (0x4f, 'o'), + (0x50, 'p'), + (0x51, 'q'), + (0x52, 'r'), + (0x53, 's'), + (0x54, 't'), + (0x55, 'u'), + (0x56, 'v'), + (0x57, 'w'), + (0x58, 'x'), + (0x59, 'y'), + (0x5a, 'z'), + (0x41, 'A'), + (0x42, 'B'), + (0x43, 'C'), + (0x44, 'D'), + (0x45, 'E'), + (0x46, 'F'), + (0x47, 'G'), + (0x48, 'H'), + (0x49, 'I'), + (0x4a, 'J'), + (0x4b, 'K'), + (0x4c, 'L'), + (0x4d, 'M'), + (0x4e, 'N'), + (0x4f, 'O'), + (0x50, 'P'), + (0x51, 'Q'), + (0x52, 'R'), + (0x53, 'S'), + (0x54, 'T'), + (0x55, 'U'), + (0x56, 'V'), + (0x57, 'W'), + (0x58, 'X'), + (0x59, 'Y'), + (0x5a, 'Z'), + (0x31, '1'), + (0x32, '2'), + (0x33, '3'), + (0x34, '4'), + (0x35, '5'), + (0x36, '6'), + (0x37, '7'), + (0x38, '8'), + (0x39, '9'), + (0x30, '0'), + (0x31, '!'), + (0x32, '@'), + (0x33, '#'), + (0x34, '$'), + (0x35, '%'), + (0x36, '^'), + (0x37, '&'), + (0x38, '*'), + (0x39, '('), + (0x30, ')'), + (0xC0, '`'), + (0xC0, '~'), + (0xBD, '-'), + (0xBD, '_'), + (0xBB, '='), + (0xBB, '+'), + (0xDB, '['), + (0xDB, '{'), + (0xDD, ']'), + (0xDD, '}'), + (0xDC, '\\'), + (0xDC, '|'), + (0xBA, ';'), + (0xBA, ':'), + (0xBC, ','), + (0xBC, '<'), + (0xBE, '.'), + (0xBE, '>'), + (0xDE, '\''), + (0xDE, '"'), + (0xBF, '/'), + (0xBF, '?'), ) } } @@ -217,100 +249,98 @@ impl ToDomBits for winit::keyboard::NamedKey { map_enum!( self, NamedKey, - (0x0000, Hyper), - (0x0085, Super), - (0x0025, Control), - (0x0032, Shift), - (0x0040, Alt), - (0x0000, Fn), - (0x0000, FnLock), - (0x0024, Enter), - (0x0009, Escape), - (0x0016, Backspace), - (0x0017, Tab), - (0x0041, Space), - (0x0042, CapsLock), - (0x0043, F1), - (0x0044, F2), - (0x0045, F3), - (0x0046, F4), - (0x0047, F5), - (0x0048, F6), - (0x0049, F7), - (0x004a, F8), - (0x004b, F9), - (0x004c, F10), - (0x005f, F11), - (0x0060, F12), - (0x006b, PrintScreen), - (0x004e, ScrollLock), - (0x007f, Pause), - (0x0076, Insert), - (0x006e, Home), - (0x0070, PageUp), - (0x0077, Delete), - (0x0073, End), - (0x0075, PageDown), - (0x0072, ArrowRight), - (0x0071, ArrowLeft), - (0x0074, ArrowDown), - (0x006f, ArrowUp), - (0x004d, NumLock), - (0x0087, ContextMenu), - (0x007c, Power), - (0x00bf, F13), - (0x00c0, F14), - (0x00c1, F15), - (0x00c2, F16), - (0x00c3, F17), - (0x00c4, F18), - (0x00c5, F19), - (0x00c6, F20), - (0x00c7, F21), - (0x00c8, F22), - (0x00c9, F23), - (0x00ca, F24), - (0x008e, Open), - (0x0092, Help), - (0x008c, Select), - (0x0089, Again), - (0x008b, Undo), - (0x0091, Cut), - (0x008d, Copy), - (0x008f, Paste), - (0x0090, Find), - (0x0079, AudioVolumeMute), - (0x007b, AudioVolumeUp), - (0x007a, AudioVolumeDown), - (0x0065, KanaMode), - (0x0064, Convert), - (0x0066, NonConvert), - (0x0000, Props), - (0x00e9, BrightnessUp), - (0x00e8, BrightnessDown), - (0x00d7, MediaPlay), - (0x00d1, MediaPause), - (0x00af, MediaRecord), - (0x00d8, MediaFastForward), - (0x00b0, MediaRewind), - (0x00ab, MediaTrackNext), - (0x00ad, MediaTrackPrevious), - (0x00ae, MediaStop), - (0x00a9, Eject), - (0x00ac, MediaPlayPause), - (0x00a3, LaunchMail), - (0x024d, LaunchScreenSaver), - (0x00e1, BrowserSearch), - (0x00b4, BrowserHome), - (0x00a6, BrowserBack), - (0x00a7, BrowserForward), - (0x0088, BrowserStop), - (0x00b5, BrowserRefresh), - (0x00a4, BrowserFavorites), - (0x017c, ZoomToggle), - (0x00f0, MailReply), - (0x00f1, MailForward), - (0x00ef, MailSend), + (0x00, Hyper), + (0x85, Super), + (0x25, Control), + (0x32, Shift), + (0x40, Alt), + (0x00, Fn), + (0x00, FnLock), + (0x24, Enter), + (0x09, Escape), + (0x16, Backspace), + (0x17, Tab), + (0x41, Space), + (0x42, CapsLock), + (0x43, F1), + (0x44, F2), + (0x45, F3), + (0x46, F4), + (0x47, F5), + (0x48, F6), + (0x49, F7), + (0x4a, F8), + (0x4b, F9), + (0x4c, F10), + (0x5f, F11), + (0x60, F12), + (0x6b, PrintScreen), + (0x4e, ScrollLock), + (0x7f, Pause), + (0x76, Insert), + (0x6e, Home), + (0x70, PageUp), + (0x77, Delete), + (0x73, End), + (0x75, PageDown), + (0x72, ArrowRight), + (0x71, ArrowLeft), + (0x74, ArrowDown), + (0x6f, ArrowUp), + (0x4d, NumLock), + (0x87, ContextMenu), + (0x7c, Power), + (0xbf, F13), + (0xc0, F14), + (0xc1, F15), + (0xc2, F16), + (0xc3, F17), + (0xc4, F18), + (0xc5, F19), + (0xc6, F20), + (0xc7, F21), + (0xc8, F22), + (0xc9, F23), + (0xca, F24), + (0x8e, Open), + (0x92, Help), + (0x8c, Select), + (0x89, Again), + (0x8b, Undo), + (0x91, Cut), + (0x8d, Copy), + (0x8f, Paste), + (0x90, Find), + (0x79, AudioVolumeMute), + (0x7b, AudioVolumeUp), + (0x7a, AudioVolumeDown), + (0x65, KanaMode), + (0x64, Convert), + (0x66, NonConvert), + (0x00, Props), + (0xe9, BrightnessUp), + (0xe8, BrightnessDown), + (0xd7, MediaPlay), + (0xd1, MediaPause), + (0xaf, MediaRecord), + (0xd8, MediaFastForward), + (0xb0, MediaRewind), + (0xab, MediaTrackNext), + (0xad, MediaTrackPrevious), + (0xae, MediaStop), + (0xa9, Eject), + (0xac, MediaPlayPause), + (0xa3, LaunchMail), + (0xe1, BrowserSearch), + (0xb4, BrowserHome), + (0xa6, BrowserBack), + (0xa7, BrowserForward), + (0x88, BrowserStop), + (0xb5, BrowserRefresh), + (0xa4, BrowserFavorites), + (0xf0, MailReply), + (0xf1, MailForward), + (0xef, MailSend), ) } } @@ -319,68 +349,100 @@ impl ToDomBits for char { fn to_dom_bits(&self) -> i32 { map!( self, - (0x0026, 'a'), - (0x0038, 'b'), - (0x0036, 'c'), - (0x0028, 'd'), - (0x001a, 'e'), - (0x0029, 'f'), - (0x002a, 'g'), - (0x002b, 'h'), - (0x001f, 'i'), - (0x002c, 'j'), - (0x002d, 'k'), - (0x002e, 'l'), - (0x003a, 'm'), - (0x0039, 'n'), - (0x0020, 'o'), - (0x0021, 'p'), - (0x0018, 'q'), - (0x001b, 'r'), - (0x0027, 's'), - (0x001c, 't'), - (0x001e, 'u'), - (0x0037, 'v'), - (0x0019, 'w'), - (0x0035, 'x'), - (0x001d, 'y'), - (0x0034, 'z'), - (0x0026, 'A'), - (0x0038, 'B'), - (0x0036, 'C'), - (0x0028, 'D'), - (0x001a, 'E'), - (0x0029, 'F'), - (0x002a, 'G'), - (0x002b, 'H'), - (0x001f, 'I'), - (0x002c, 'J'), - (0x002d, 'K'), - (0x002e, 'L'), - (0x003a, 'M'), - (0x0039, 'N'), - (0x0020, 'O'), - (0x0021, 'P'), - (0x0018, 'Q'), - (0x001b, 'R'), - (0x0027, 'S'), - (0x001c, 'T'), - (0x001e, 'U'), - (0x0037, 'V'), - (0x0019, 'W'), - (0x0035, 'X'), - (0x001d, 'Y'), - (0x0034, 'Z'), - (0x000a, '1'), - (0x000b, '2'), - (0x000c, '3'), - (0x000d, '4'), - (0x000e, '5'), - (0x000f, '6'), - (0x0010, '7'), - (0x0011, '8'), - (0x0012, '9'), - (0x0013, '0'), + (0x26, 'a'), + (0x38, 'b'), + (0x36, 'c'), + (0x28, 'd'), + (0x1a, 'e'), + (0x29, 'f'), + (0x2a, 'g'), + (0x2b, 'h'), + (0x1f, 'i'), + (0x2c, 'j'), + (0x2d, 'k'), + (0x2e, 'l'), + (0x3a, 'm'), + (0x39, 'n'), + (0x20, 'o'), + (0x21, 'p'), + (0x18, 'q'), + (0x1b, 'r'), + (0x27, 's'), + (0x1c, 't'), + (0x1e, 'u'), + (0x37, 'v'), + (0x19, 'w'), + (0x35, 'x'), + (0x1d, 'y'), + (0x34, 'z'), + (0x26, 'A'), + (0x38, 'B'), + (0x36, 'C'), + (0x28, 'D'), + (0x1a, 'E'), + (0x29, 'F'), + (0x2a, 'G'), + (0x2b, 'H'), + (0x1f, 'I'), + (0x2c, 'J'), + (0x2d, 'K'), + (0x2e, 'L'), + (0x3a, 'M'), + (0x39, 'N'), + (0x20, 'O'), + (0x21, 'P'), + (0x18, 'Q'), + (0x1b, 'R'), + (0x27, 'S'), + (0x1c, 'T'), + (0x1e, 'U'), + (0x37, 'V'), + (0x19, 'W'), + (0x35, 'X'), + (0x1d, 'Y'), + (0x34, 'Z'), + (0x0a, '1'), + (0x0b, '2'), + (0x0c, '3'), + (0x0d, '4'), + (0x0e, '5'), + (0x0f, '6'), + (0x10, '7'), + (0x11, '8'), + (0x12, '9'), + (0x13, '0'), + (0x0a, '!'), + (0x0b, '@'), + (0x0c, '#'), + (0x0d, '$'), + (0x0e, '%'), + (0x0f, '^'), + (0x10, '&'), + (0x11, '*'), + (0x12, '('), + (0x13, ')'), + (0x31, '`'), + (0x31, '~'), + (0x14, '-'), + (0x14, '_'), + (0x15, '='), + (0x15, '+'), + (0x22, '['), + (0x22, '{'), + (0x23, ']'), + (0x23, '}'), + (0x33, '\\'), + (0x33, '|'), + (0x2f, ';'), + (0x2f, ':'), + (0x3b, ','), + (0x3b, '<'), + (0x3c, '.'), + (0x3c, '>'), + (0x30, '\''), + (0x30, '"'), + (0x3d, '/'), + (0x3d, '?'), ) } }