From faed05850eef00f5b9dda3f7c53d80f6fb9d0411 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Sun, 27 Dec 2015 16:46:12 -0500 Subject: [PATCH] Mac: make sure SDL keyboard state reflects system capslock state at startup. --- src/video/cocoa/SDL_cocoakeyboard.m | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/video/cocoa/SDL_cocoakeyboard.m b/src/video/cocoa/SDL_cocoakeyboard.m index 5c3155df0..f27709e56 100644 --- a/src/video/cocoa/SDL_cocoakeyboard.m +++ b/src/video/cocoa/SDL_cocoakeyboard.m @@ -497,6 +497,15 @@ Cocoa_InitKeyboard(_THIS) SDL_SetScancodeName(SDL_SCANCODE_LGUI, "Left Command"); SDL_SetScancodeName(SDL_SCANCODE_RALT, "Right Option"); SDL_SetScancodeName(SDL_SCANCODE_RGUI, "Right Command"); + + /* On pre-10.6, you might have the initial capslock key state wrong. */ + if (floor(NSAppKitVersionNumber) >= NSAppKitVersionNumber10_6) { + data->modifierFlags = [NSEvent modifierFlags]; + if (data->modifierFlags & NSAlphaShiftKeyMask) { + SDL_SendKeyboardKey(SDL_PRESSED, SDL_SCANCODE_CAPSLOCK); + SDL_SendKeyboardKey(SDL_RELEASED, SDL_SCANCODE_CAPSLOCK); + } + } } void