diff options
author | Behdad Esfahbod <behdad@behdad.org> | 2012-03-28 12:36:31 -0400 |
---|---|---|
committer | Behdad Esfahbod <behdad@behdad.org> | 2012-03-28 12:36:31 -0400 |
commit | 097aacf68df1b80e716d8a0c8122ffcf781a7263 (patch) | |
tree | afa0929468d4373a73f388cf4cbd0454d9e50a5f /src/library_gl.js | |
parent | d0b7241d7fcf45f20e725500a37173a89041097b (diff) |
Refactor keyboard func
Functionally the same still. Special keys work for me, but not keyboard
callbacks. Not sure why. For the least, some translation is needed.
Diffstat (limited to 'src/library_gl.js')
-rw-r--r-- | src/library_gl.js | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/src/library_gl.js b/src/library_gl.js index dae0e9da..28183d27 100644 --- a/src/library_gl.js +++ b/src/library_gl.js @@ -522,6 +522,11 @@ var LibraryGLUT = { return key; }, + getASCIIKey: function(keycode) { + // TODO apply modifiers, etc + return keycode; + }, + onKeydown: function(event) { if (GLUT.specialFunc || GLUT.keyboardFunc) { GLUT.saveModifiers(event); @@ -529,8 +534,12 @@ var LibraryGLUT = { if (key !== null) { if( GLUT.specialFunc ) FUNCTION_TABLE[GLUT.specialFunc](key, GLUT.lastX, GLUT.lastY); } - else if( GLUT.keyboardFunc ) { - FUNCTION_TABLE[GLUT.keyboardFunc](event['keyCode'], GLUT.lastX, GLUT.lastY); + else + { + key = GLUT.getASCIIKey(event['keyCode']); + if( key !== null && GLUT.keyboardFunc ) { + FUNCTION_TABLE[GLUT.keyboardFunc](event['keyCode'], GLUT.lastX, GLUT.lastY); + } } } }, @@ -542,8 +551,12 @@ var LibraryGLUT = { if (key !== null) { if(GLUT.specialUpFunc) FUNCTION_TABLE[GLUT.specialUpFunc](key, GLUT.lastX, GLUT.lastY); } - else if(GLUT.keyboardUpFunc) { - FUNCTION_TABLE[GLUT.keyboardUpFunc](event['keyCode'], GLUT.lastX, GLUT.lastY); + else + { + key = GLUT.getASCIIKey(event['keyCode']); + if( key !== null && GLUT.keyboardUpFunc ) { + FUNCTION_TABLE[GLUT.keyboardUpFunc](event['keyCode'], GLUT.lastX, GLUT.lastY); + } } } }, |