mirror of
https://github.com/Ryujinx/SDL.git
synced 2024-12-23 13:25:33 +00:00
Fix key code names for ISO keyboard layouts
(cherry picked from commit 60dcaff7eb25a01c9c87a5fed335b29a5625b95b)
This commit is contained in:
parent
51dcc3bb0b
commit
7914234b26
|
@ -280,6 +280,17 @@ UpdateKeymap(SDL_VideoData *data, SDL_bool send_event)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Swap the scancode for these two wrongly translated keys
|
||||||
|
* UCKeyTranslate() function does not do its job properly for ISO layout keyboards, where the key '@',
|
||||||
|
* which is located in the top left corner of the keyboard right under the Escape key, and the additional
|
||||||
|
* key '<', which is on the right of the Shift key, are inverted
|
||||||
|
*/
|
||||||
|
if ((scancode == SDL_SCANCODE_NONUSBACKSLASH || scancode == SDL_SCANCODE_GRAVE) && KBGetLayoutType(LMGetKbdType()) == kKeyboardISO) {
|
||||||
|
/* see comments in scancodes_darwin.h */
|
||||||
|
scancode = (SDL_Scancode)((SDL_SCANCODE_NONUSBACKSLASH + SDL_SCANCODE_GRAVE) - scancode);
|
||||||
|
}
|
||||||
|
|
||||||
dead_key_state = 0;
|
dead_key_state = 0;
|
||||||
err = UCKeyTranslate ((UCKeyboardLayout *) chr_data,
|
err = UCKeyTranslate ((UCKeyboardLayout *) chr_data,
|
||||||
i, kUCKeyActionDown,
|
i, kUCKeyActionDown,
|
||||||
|
@ -394,7 +405,7 @@ Cocoa_HandleKeyEvent(_THIS, NSEvent *event)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if ((scancode == 10 || scancode == 50) && KBGetLayoutType(LMGetKbdType()) == kKeyboardISO) {
|
if ((scancode == 10 || scancode == 50) && KBGetLayoutType(LMGetKbdType()) == kKeyboardISO) {
|
||||||
/* see comments in SDL_cocoakeys.h */
|
/* see comments in scancodes_darwin.h */
|
||||||
scancode = 60 - scancode;
|
scancode = 60 - scancode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue