aboutsummaryrefslogtreecommitdiff
path: root/src/library_gl.js
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@behdad.org>2012-03-28 12:36:31 -0400
committerBehdad Esfahbod <behdad@behdad.org>2012-03-28 12:36:31 -0400
commit097aacf68df1b80e716d8a0c8122ffcf781a7263 (patch)
treeafa0929468d4373a73f388cf4cbd0454d9e50a5f /src/library_gl.js
parentd0b7241d7fcf45f20e725500a37173a89041097b (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.js21
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);
+ }
}
}
},