mirror of
https://github.com/encounter/SDL.git
synced 2025-12-09 21:47:44 +00:00
Sync up the caps/numlock state properly without sending key events.
Partially fixes Bugzilla #2736 and #3125.
This commit is contained in:
@@ -845,6 +845,19 @@ SDL_SetModState(SDL_Keymod modstate)
|
||||
keyboard->modstate = modstate;
|
||||
}
|
||||
|
||||
/* Note that SDL_ToggleModState() is not a public API. SDL_SetModState() is. */
|
||||
void
|
||||
SDL_ToggleModState(const SDL_Keymod modstate, const SDL_bool toggle)
|
||||
{
|
||||
SDL_Keyboard *keyboard = &SDL_keyboard;
|
||||
if (toggle) {
|
||||
keyboard->modstate |= modstate;
|
||||
} else {
|
||||
keyboard->modstate &= ~modstate;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
SDL_Keycode
|
||||
SDL_GetKeyFromScancode(SDL_Scancode scancode)
|
||||
{
|
||||
|
||||
@@ -62,6 +62,9 @@ extern void SDL_KeyboardQuit(void);
|
||||
/* Convert to UTF-8 */
|
||||
extern char *SDL_UCS4ToUTF8(Uint32 ch, char *dst);
|
||||
|
||||
/* Toggle on or off pieces of the keyboard mod state. */
|
||||
extern void SDL_ToggleModState(const SDL_Keymod modstate, const SDL_bool toggle);
|
||||
|
||||
#endif /* _SDL_keyboard_c_h */
|
||||
|
||||
/* vi: set ts=4 sw=4 expandtab: */
|
||||
|
||||
Reference in New Issue
Block a user