@@ -3627,7 +3627,7 @@ void RGFW_keyCallback(RGFW_window* win, RGFW_key key, RGFW_keymod mod, RGFW_bool
36273627 _RGFW->keyboard[key].current = press;
36283628
36293629 event.key.value = key;
3630- event.key.mod = repeat;
3630+ event.key.repeat = repeat;
36313631 event.key.mod = mod;
36323632 event.key.state = press;
36333633 event.common.win = win;
@@ -4285,7 +4285,7 @@ RGFW_bool RGFW_monitorModeCompare(RGFW_monitorMode* mon, RGFW_monitorMode* mon2,
42854285}
42864286
42874287RGFW_bool RGFW_window_shouldClose(RGFW_window* win) {
4288- return (win == NULL || win->internal.shouldClose || (win->internal.exitKey && RGFW_window_isKeyDown(win, win->internal.exitKey)));
4288+ return (win == NULL || win->internal.shouldClose || (win->internal.exitKey && RGFW_isKeyDown( win->internal.exitKey)));
42894289}
42904290
42914291void RGFW_window_setShouldClose(RGFW_window* win, RGFW_bool shouldClose) {
@@ -4656,10 +4656,10 @@ void RGFW_keyUpdateKeyModsEx(RGFW_window* win, RGFW_bool capital, RGFW_bool numl
46564656
46574657void RGFW_keyUpdateKeyMods(RGFW_window* win, RGFW_bool capital, RGFW_bool numlock, RGFW_bool scroll) {
46584658 RGFW_keyUpdateKeyModsEx(win, capital, numlock,
4659- RGFW_window_isKeyDown(win, RGFW_keyControlL) || RGFW_window_isKeyDown(win, RGFW_keyControlR),
4660- RGFW_window_isKeyDown(win, RGFW_keyAltL) || RGFW_window_isKeyDown(win, RGFW_keyAltR),
4661- RGFW_window_isKeyDown(win, RGFW_keyShiftL) || RGFW_window_isKeyDown(win, RGFW_keyShiftR),
4662- RGFW_window_isKeyDown(win, RGFW_keySuperL) || RGFW_window_isKeyDown(win, RGFW_keySuperR),
4659+ RGFW_isKeyDown( RGFW_keyControlL) || RGFW_isKeyDown( RGFW_keyControlR),
4660+ RGFW_isKeyDown( RGFW_keyAltL) || RGFW_isKeyDown( RGFW_keyAltR),
4661+ RGFW_isKeyDown( RGFW_keyShiftL) || RGFW_isKeyDown( RGFW_keyShiftR),
4662+ RGFW_isKeyDown( RGFW_keySuperL) || RGFW_isKeyDown( RGFW_keySuperR),
46634663 scroll);
46644664}
46654665
@@ -6665,7 +6665,7 @@ void RGFW_XHandleEvent(void) {
66656665 XkbGetState(_RGFW->display, XkbUseCoreKbd, &state);
66666666 RGFW_keyUpdateKeyMods(win, (state.locked_mods & LockMask), (state.locked_mods & Mod2Mask), (state.locked_mods & Mod3Mask));
66676667
6668- RGFW_keyCallback(win, value, win->internal.mod, keyRepeat , RGFW_FALSE);
6668+ RGFW_keyCallback(win, value, win->internal.mod, RGFW_FALSE , RGFW_FALSE);
66696669 break;
66706670 }
66716671 case ButtonPress: {
@@ -8875,7 +8875,7 @@ static void RGFW_wl_keyboard_key(void* data, struct wl_keyboard *keyboard, u32 s
88758875 RGFW_key RGFWkey = RGFW_apiKeyToRGFW(key + 8);
88768876
88778877 RGFW_keyUpdateKeyMods(RGFW_key_win, RGFW_BOOL(xkb_keymap_mod_get_index(RGFW->keymap, "Lock")), RGFW_BOOL(xkb_keymap_mod_get_index(RGFW->keymap, "Mod2")), RGFW_BOOL(xkb_keymap_mod_get_index(RGFW->keymap, "ScrollLock")));
8878- RGFW_keyCallback(RGFW_key_win, (u8)RGFWkey, RGFW_key_win->internal.mod, RGFW_window_isKeyDown(RGFW_key_win, (u8)RGFWkey), RGFW_BOOL(state));
8878+ RGFW_keyCallback(RGFW_key_win, (u8)RGFWkey, RGFW_key_win->internal.mod, RGFW_isKeyDown( (u8)RGFWkey) && RGFW_BOOL(state ), RGFW_BOOL(state));
88798879
88808880 /* [comment by Kala Telo (@kala-telo) and edited by Riley Mabb (@ColleagueRiley)]
88818881 we send the event at the moment we receive it, and
@@ -10638,10 +10638,8 @@ LRESULT CALLBACK WndProcW(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
1063810638 else value = RGFW_keyControlL;
1063910639 }
1064010640
10641- RGFW_bool repeat = ((lParam & 0x40000000) != 0) || RGFW_window_isKeyDown(win, value);
10642-
1064310641 RGFW_keyUpdateKeyMods(win, (GetKeyState(VK_CAPITAL) & 0x0001), (GetKeyState(VK_NUMLOCK) & 0x0001), (GetKeyState(VK_SCROLL) & 0x0001));
10644- RGFW_keyCallback(win, value, win->internal.mod, repeat , RGFW_FALSE);
10642+ RGFW_keyCallback(win, value, win->internal.mod, RGFW_FALSE , RGFW_FALSE);
1064510643 break;
1064610644 }
1064710645 case WM_SYSKEYDOWN: case WM_KEYDOWN: {
@@ -10664,7 +10662,7 @@ LRESULT CALLBACK WndProcW(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
1066410662 else value = RGFW_keyControlL;
1066510663 }
1066610664
10667- RGFW_bool repeat = ((lParam & 0x40000000) != 0) || RGFW_window_isKeyDown(win, value);
10665+ RGFW_bool repeat = RGFW_isKeyDown( value);
1066810666
1066910667 RGFW_keyUpdateKeyMods(win, (GetKeyState(VK_CAPITAL) & 0x0001), (GetKeyState(VK_NUMLOCK) & 0x0001), (GetKeyState(VK_SCROLL) & 0x0001));
1067010668 RGFW_keyCallback(win, value, win->internal.mod, repeat, 1);
@@ -13068,7 +13066,7 @@ static void RGFW__osxKeyDown(id self, SEL _cmd, id event) {
1306813066 u32 key = (u16)((u32(*)(id, SEL))objc_msgSend)(event, sel_registerName("keyCode"));
1306913067
1307013068 RGFW_key value = (u8)RGFW_apiKeyToRGFW(key);
13071- RGFW_bool repeat = RGFW_window_isKeyPressed(win, value);
13069+ RGFW_bool repeat = RGFW_isKeyDown( value);
1307213070
1307313071 RGFW_keyCallback(win, value, win->internal.mod, repeat, 1);
1307413072
@@ -13090,9 +13088,8 @@ static void RGFW__osxKeyUp(id self, SEL _cmd, id event) {
1309013088 u32 key = (u16)((u32(*)(id, SEL))objc_msgSend)(event, sel_registerName("keyCode"));
1309113089
1309213090 RGFW_key value = (u8)RGFW_apiKeyToRGFW(key);
13093- RGFW_bool repeat = RGFW_window_isKeyDown(win, (u8)value);
1309413091
13095- RGFW_keyCallback(win, value, win->internal.mod, repeat , 0);
13092+ RGFW_keyCallback(win, value, win->internal.mod, RGFW_FALSE , 0);
1309613093}
1309713094
1309813095static void RGFW__osxFlagsChanged(id self, SEL _cmd, id event) {
@@ -13119,23 +13116,22 @@ static void RGFW__osxFlagsChanged(id self, SEL _cmd, id event) {
1311913116 for (i = 0; i < 5; i++) {
1312013117 u32 shift = (1 << (i + 16));
1312113118 RGFW_key key = i + RGFW_keyCapsLock;
13122- if ((flags & shift) && !RGFW_window_isKeyDown(win, (u8)key)) {
13119+ if ((flags & shift) && !RGFW_isKeyDown( (u8)key)) {
1312313120 pressed = RGFW_TRUE;
1312413121 value = (u8)key;
1312513122 break;
1312613123 }
13127- if (!(flags & shift) && RGFW_window_isKeyDown(win, (u8)key)) {
13124+ if (!(flags & shift) && RGFW_isKeyDown( (u8)key)) {
1312813125 pressed = RGFW_FALSE;
1312913126 value = (u8)key;
1313013127 break;
1313113128 }
1313213129 }
1313313130
13134- RGFW_bool repeat = RGFW_window_isKeyDown(win, (u8)value);
13135- RGFW_keyCallback(win, value, win->internal.mod, repeat, pressed);
13131+ RGFW_keyCallback(win, value, win->internal.mod, RGFW_isKeyDown(value) && pressed, pressed);
1313613132
1313713133 if (value != RGFW_keyCapsLock) {
13138- RGFW_keyCallback(win, value + 4, win->internal.mod, repeat , pressed);
13134+ RGFW_keyCallback(win, value + 4, win->internal.mod, RGFW_isKeyDown(value + 4) && pressed , pressed);
1313913135 }
1314013136
1314113137}
@@ -14773,7 +14769,7 @@ void EMSCRIPTEN_KEEPALIVE RGFW_handleKeyEvent(char* code, u32 codepoint, RGFW_bo
1477314769
1477414770 u32 physicalKey = RGFW_WASMPhysicalToRGFW(hash);
1477514771
14776- RGFW_keyCallback(_RGFW->root, physicalKey, _RGFW->root->internal.mod, RGFW_window_isKeyDown(_RGFW->root, (u8)physicalKey), press);
14772+ RGFW_keyCallback(_RGFW->root, physicalKey, _RGFW->root->internal.mod, RGFW_isKeyDown( (u8)physicalKey) && press , press);
1477714773 if (press) {
1477814774; RGFW_keyCharCallback(_RGFW->root, codepoint);
1477914775 }
0 commit comments