Skip to content

Commit ea68916

Browse files
authored
macOS: Parse more key codes into named keys (#4148)
1 parent e26b831 commit ea68916

1 file changed

Lines changed: 16 additions & 0 deletions

File tree

src/platform_impl/apple/appkit/event.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,9 @@ pub fn code_to_key(key: PhysicalKey, scancode: u16) -> Key {
162162
PhysicalKey::Unidentified(code) => return Key::Unidentified(code.into()),
163163
};
164164

165+
// Roughly same handling as Firefox and Chromium:
166+
// https://searchfox.org/mozilla-central/rev/c597e9c789ad36af84a0370d395be066b7dc94f4/widget/NativeKeyToDOMKeyName.h
167+
// https://chromium.googlesource.com/chromium/src.git/+/010a75a426c4a2292955a52f480e9251cacf750e/ui/events/keycodes/keyboard_code_conversion_mac.mm#100
165168
Key::Named(match code {
166169
KeyCode::Enter => NamedKey::Enter,
167170
KeyCode::Tab => NamedKey::Tab,
@@ -176,14 +179,17 @@ pub fn code_to_key(key: PhysicalKey, scancode: u16) -> Key {
176179
KeyCode::ShiftRight => NamedKey::Shift,
177180
KeyCode::AltRight => NamedKey::Alt,
178181
KeyCode::ControlRight => NamedKey::Control,
182+
KeyCode::CapsLock => NamedKey::CapsLock,
179183

180184
KeyCode::NumLock => NamedKey::NumLock,
181185
KeyCode::AudioVolumeUp => NamedKey::AudioVolumeUp,
182186
KeyCode::AudioVolumeDown => NamedKey::AudioVolumeDown,
187+
KeyCode::AudioVolumeMute => NamedKey::AudioVolumeMute,
183188

184189
// Other numpad keys all generate text on macOS (if I understand correctly)
185190
KeyCode::NumpadEnter => NamedKey::Enter,
186191

192+
KeyCode::Fn => NamedKey::Fn,
187193
KeyCode::F1 => NamedKey::F1,
188194
KeyCode::F2 => NamedKey::F2,
189195
KeyCode::F3 => NamedKey::F3,
@@ -204,17 +210,27 @@ pub fn code_to_key(key: PhysicalKey, scancode: u16) -> Key {
204210
KeyCode::F18 => NamedKey::F18,
205211
KeyCode::F19 => NamedKey::F19,
206212
KeyCode::F20 => NamedKey::F20,
213+
KeyCode::F21 => NamedKey::F21,
214+
KeyCode::F22 => NamedKey::F22,
215+
KeyCode::F23 => NamedKey::F23,
216+
KeyCode::F24 => NamedKey::F24,
207217

208218
KeyCode::Insert => NamedKey::Insert,
209219
KeyCode::Home => NamedKey::Home,
210220
KeyCode::PageUp => NamedKey::PageUp,
211221
KeyCode::Delete => NamedKey::Delete,
212222
KeyCode::End => NamedKey::End,
223+
KeyCode::Help => NamedKey::Help,
213224
KeyCode::PageDown => NamedKey::PageDown,
214225
KeyCode::ArrowLeft => NamedKey::ArrowLeft,
215226
KeyCode::ArrowRight => NamedKey::ArrowRight,
216227
KeyCode::ArrowDown => NamedKey::ArrowDown,
217228
KeyCode::ArrowUp => NamedKey::ArrowUp,
229+
KeyCode::ContextMenu => NamedKey::ContextMenu,
230+
231+
KeyCode::Lang2 => NamedKey::Eisu,
232+
KeyCode::Lang1 => NamedKey::KanjiMode,
233+
218234
_ => return Key::Unidentified(NativeKey::MacOS(scancode)),
219235
})
220236
}

0 commit comments

Comments
 (0)