The keycode in key events is affected by modifiers by default.

This behavior can be customized with SDL_HINT_KEYCODE_OPTIONS.
This commit is contained in:
Sam Lantinga
2024-06-22 00:04:33 -07:00
parent 1e81424b3d
commit 90034b16dc
6 changed files with 149 additions and 29 deletions

View File

@@ -226,27 +226,25 @@ static void loop(void *arg)
break;
case SDL_EVENT_KEY_DOWN:
switch (event.key.key) {
case 'l':
if (event.key.mod & SDL_KMOD_SHIFT) {
num_lines = 0;
} else {
add_line(
(float)SDL_rand_n(640),
(float)SDL_rand_n(480),
(float)SDL_rand_n(640),
(float)SDL_rand_n(480));
}
case SDLK_L:
num_lines = 0;
break;
case 'r':
if (event.key.mod & SDL_KMOD_SHIFT) {
num_rects = 0;
} else {
add_rect(
(float)SDL_rand_n(640),
(float)SDL_rand_n(480),
(float)SDL_rand_n(640),
(float)SDL_rand_n(480));
}
case SDLK_l:
add_line(
(float)SDL_rand_n(640),
(float)SDL_rand_n(480),
(float)SDL_rand_n(640),
(float)SDL_rand_n(480));
break;
case SDLK_R:
num_rects = 0;
break;
case SDLK_r:
add_rect(
(float)SDL_rand_n(640),
(float)SDL_rand_n(480),
(float)SDL_rand_n(640),
(float)SDL_rand_n(480));
break;
default:
break;