aboutsummaryrefslogtreecommitdiff
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
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.
-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);
+ }
}
}
},