From ea87491a82a0fc778056d1538d37ec851e8e0fbe Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 25 Sep 2022 00:14:59 +0200 Subject: [PATCH] ADDED: Support CAPS/NUM lock keys registering if locked --- src/rcore.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/rcore.c b/src/rcore.c index 490ac4a10..214b9509b 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -4136,6 +4136,8 @@ static bool InitGraphicsDevice(int width, int height) glfwSetScrollCallback(CORE.Window.handle, MouseScrollCallback); glfwSetCursorEnterCallback(CORE.Window.handle, CursorEnterCallback); + glfwSetInputMode(CORE.Window.handle, GLFW_LOCK_KEY_MODS, GLFW_TRUE); // Enable lock keys modifiers (CAPS, NUM) + glfwMakeContextCurrent(CORE.Window.handle); #if !defined(PLATFORM_WEB) @@ -5267,6 +5269,9 @@ static void KeyCallback(GLFWwindow *window, int key, int scancode, int action, i if (action == GLFW_RELEASE) CORE.Input.Keyboard.currentKeyState[key] = 0; else CORE.Input.Keyboard.currentKeyState[key] = 1; + // WARNING: Check if CAPS/NUM key modifiers are enabled and force down state for those keys + if (((mods & GLFW_MOD_CAPS_LOCK) > 0) || ((mods & GLFW_MOD_NUM_LOCK) > 0)) CORE.Input.Keyboard.currentKeyState[key] = 1; + // Check if there is space available in the key queue if ((CORE.Input.Keyboard.keyPressedQueueCount < MAX_KEY_PRESSED_QUEUE) && (action == GLFW_PRESS)) {