# HG changeset patch # User Sam Lantinga # Date 1104711884 0 # Node ID ddd058103e28daf88bf83c5a7251a9351332eb9d # Parent 5b1cb1e9140dfcd64142c96a285864c3b6388adc 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. diff -r 5b1cb1e9140d -r ddd058103e28 src/events/SDL_keyboard.c --- a/src/events/SDL_keyboard.c Sun Jan 02 05:11:16 2005 +0000 +++ b/src/events/SDL_keyboard.c Mon Jan 03 00:24:44 2005 +0000 @@ -491,7 +491,8 @@ /* * jk 991215 - Added */ - if ( SDL_KeyRepeat.timestamp ) { + if ( SDL_KeyRepeat.timestamp && + SDL_KeyRepeat.evt.key.keysym.sym == keysym->sym ) { SDL_KeyRepeat.timestamp = 0; } break;