diff --git a/src/video/cocoa/SDL_cocoakeyboard.h b/src/video/cocoa/SDL_cocoakeyboard.h index 183a9a60d..bca08f638 100644 --- a/src/video/cocoa/SDL_cocoakeyboard.h +++ b/src/video/cocoa/SDL_cocoakeyboard.h @@ -25,6 +25,7 @@ #define _SDL_cocoakeyboard_h extern void Cocoa_InitKeyboard(_THIS); +extern void Cocoa_HandleKeyEvent(_THIS, NSEvent *event); extern void Cocoa_QuitKeyboard(_THIS); #endif /* _SDL_cocoakeyboard_h */ diff --git a/src/video/cocoa/SDL_cocoakeyboard.m b/src/video/cocoa/SDL_cocoakeyboard.m index 84097b2f9..38781d738 100644 --- a/src/video/cocoa/SDL_cocoakeyboard.m +++ b/src/video/cocoa/SDL_cocoakeyboard.m @@ -423,6 +423,14 @@ HandleCapsLock(int keyboard, unsigned short scancode, SDL_SendKeyboardKey(keyboard, SDL_PRESSED, (Uint8)scancode, SDLK_CAPSLOCK); SDL_SendKeyboardKey(keyboard, SDL_RELEASED, (Uint8)scancode, SDLK_CAPSLOCK); } + + oldMask = oldMods & NSNumericPadKeyMask; + newMask = newMods & NSNumericPadKeyMask; + + if (oldMask != newMask) { + SDL_SendKeyboardKey(keyboard, SDL_PRESSED, (Uint8)scancode, SDLK_NUMLOCK); + SDL_SendKeyboardKey(keyboard, SDL_RELEASED, (Uint8)scancode, SDLK_NUMLOCK); + } } /* This function will handle the modifier keys and also determine the