|
|
@@ -570,7 +570,7 @@ SDL_ResetKeyboard(void)
|
|
|
#endif
|
|
|
for (scancode = 0; scancode < SDL_NUM_SCANCODES; ++scancode) {
|
|
|
if (keyboard->keystate[scancode] == SDL_PRESSED) {
|
|
|
- SDL_SendKeyboardKey(SDL_RELEASED, scancode);
|
|
|
+ SDL_SendKeyboardKey(SDL_RELEASED, 0, scancode);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -647,7 +647,7 @@ SDL_SetKeyboardFocus(SDL_Window * window)
|
|
|
}
|
|
|
|
|
|
int
|
|
|
-SDL_SendKeyboardKey(Uint8 state, SDL_Scancode scancode)
|
|
|
+SDL_SendKeyboardKey(Uint8 state, Uint32 keycode, SDL_Scancode scancode)
|
|
|
{
|
|
|
SDL_Keyboard *keyboard = &SDL_keyboard;
|
|
|
int posted;
|
|
|
@@ -655,9 +655,11 @@ SDL_SendKeyboardKey(Uint8 state, SDL_Scancode scancode)
|
|
|
Uint32 type;
|
|
|
Uint8 repeat;
|
|
|
|
|
|
+#if 0
|
|
|
if (!scancode) {
|
|
|
return 0;
|
|
|
}
|
|
|
+#endif
|
|
|
#ifdef DEBUG_KEYBOARD
|
|
|
printf("The '%s' key has been %s\n", SDL_GetScancodeName(scancode),
|
|
|
state == SDL_PRESSED ? "pressed" : "released");
|
|
|
@@ -774,6 +776,7 @@ SDL_SendKeyboardKey(Uint8 state, SDL_Scancode scancode)
|
|
|
event.key.keysym.scancode = scancode;
|
|
|
event.key.keysym.sym = keyboard->keymap[scancode];
|
|
|
event.key.keysym.mod = modstate;
|
|
|
+ event.key.keysym.raw = keycode;
|
|
|
event.key.windowID = keyboard->focus ? keyboard->focus->id : 0;
|
|
|
posted = (SDL_PushEvent(&event) > 0);
|
|
|
}
|