Mercurial > sdl-ios-xcode
comparison src/events/SDL_keyboard.c @ 1021:ddd058103e28
Date: Sun, 2 Jan 2005 18:36:09 +0100
From: Jon Daniel
Subject: [SDL] KeyRepeat fix
If you switch keys very fast and hold the last one it
doesn't get repeated because the key release of the first key
occured after the key press of the second key.
Unfortunatly the key release of the first key sets
SDL_KeyRepeat.timestamp = 0; causing the the second key not to repeat.
This should be always reproducable. I've only checked this on x86-64
X11.
To fix this I just added another condition to make sure the sym of the
released key matches SDL_KeyRepeat.key.keysym.sym.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Mon, 03 Jan 2005 00:24:44 +0000 |
parents | b8d311d90021 |
children | 28ac87a38c17 |
comparison
equal
deleted
inserted
replaced
1020:5b1cb1e9140d | 1021:ddd058103e28 |
---|---|
489 case SDL_RELEASED: | 489 case SDL_RELEASED: |
490 event.type = SDL_KEYUP; | 490 event.type = SDL_KEYUP; |
491 /* | 491 /* |
492 * jk 991215 - Added | 492 * jk 991215 - Added |
493 */ | 493 */ |
494 if ( SDL_KeyRepeat.timestamp ) { | 494 if ( SDL_KeyRepeat.timestamp && |
495 SDL_KeyRepeat.evt.key.keysym.sym == keysym->sym ) { | |
495 SDL_KeyRepeat.timestamp = 0; | 496 SDL_KeyRepeat.timestamp = 0; |
496 } | 497 } |
497 break; | 498 break; |
498 default: | 499 default: |
499 /* Invalid state -- bail */ | 500 /* Invalid state -- bail */ |