@@ -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