aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-08-26 10:51:56 -0700
committerAlon Zakai <alonzakai@gmail.com>2013-08-26 10:51:56 -0700
commitfc56aa8d28bbc5ef66a0a5f21c12892f320098b7 (patch)
tree94eb9b467fd031dee4e1c5b190b151cf5e2d9bc6
parent5eb4366a249d3a302b476fc1734aaa923f7323c3 (diff)
parente216f3200c6d8ab52c58b814a663be08a68279ff (diff)
Merge pull request #1507 from ToadKing/sdl-alpha-keys
SDL alpha keys fix
-rw-r--r--src/library_sdl.js7
-rw-r--r--tests/sdl_pumpevents.c16
-rw-r--r--tests/test_browser.py2
3 files changed, 23 insertions, 2 deletions
diff --git a/src/library_sdl.js b/src/library_sdl.js
index 5b2f8379..1fb75724 100644
--- a/src/library_sdl.js
+++ b/src/library_sdl.js
@@ -547,7 +547,12 @@ var LibrarySDL = {
switch (event.type) {
case 'keydown': case 'keyup': {
var down = event.type === 'keydown';
- var code = SDL.keyCodes[event.keyCode] || event.keyCode;
+ var code = event.keyCode;
+ if (code >= 65 && code <= 90) {
+ code += 32; // make lowercase for SDL
+ } else {
+ code = SDL.keyCodes[event.keyCode] || event.keyCode;
+ }
{{{ makeSetValue('SDL.keyboardState', 'code', 'down', 'i8') }}};
// TODO: lmeta, rmeta, numlock, capslock, KMOD_MODE, KMOD_RESERVED
diff --git a/tests/sdl_pumpevents.c b/tests/sdl_pumpevents.c
index 64becaad..e765d285 100644
--- a/tests/sdl_pumpevents.c
+++ b/tests/sdl_pumpevents.c
@@ -40,6 +40,20 @@ int loop2()
return r;
}
+int alphakey()
+{
+ unsigned i;
+ int r = 0;
+
+ SDL_PumpEvents();
+
+ const Uint8 *keys = SDL_GetKeyState(NULL);
+ if (keys[SDLK_a])
+ r = 4;
+
+ return r;
+}
+
int main(int argc, char *argv[])
{
SDL_Init(SDL_INIT_EVERYTHING);
@@ -49,6 +63,8 @@ int main(int argc, char *argv[])
result += loop1();
emscripten_run_script("keydown(39);"); // right
result += loop2();
+ emscripten_run_script("keydown(65);"); // A
+ result += alphakey();
REPORT_RESULT();
return 0;
}
diff --git a/tests/test_browser.py b/tests/test_browser.py
index 4b42eedd..1c9cbfad 100644
--- a/tests/test_browser.py
+++ b/tests/test_browser.py
@@ -805,7 +805,7 @@ If manually bisecting:
document.dispatchEvent(event);
}
''')
- self.btest('sdl_pumpevents.c', expected='3', args=['--pre-js', 'pre.js'])
+ self.btest('sdl_pumpevents.c', expected='7', args=['--pre-js', 'pre.js'])
def test_sdl_audio(self):
shutil.copyfile(path_from_root('tests', 'sounds', 'alarmvictory_1.ogg'), os.path.join(self.get_dir(), 'sound.ogg'))