freeGLUT keyboard input
I'm using GLUT (freeglut3) (via the Haskell GLUT bindings).

<pre>
import Graphics.UI.GLUT

handleKBMouse :: KeyboardMouseCallback
handleKBMouse key keyState mods mousePos = do
    print (key, keyState, mods, mousePos)

main :: IO ()
main = do
    getArgsAndInitialize
    createWindow "testTitle"
    keyboardMouseCallback $= Just handleKBMouse
    mainLoop
</pre>

It seems that various important keys (e.g: Shift+Tab) do not call my callback. Also, "mods" doesn't describe the win-key, only Ctrl, Shift and Alt.

Having such limited access to keyboard input is a serious impediment for real application development.  Am I doing anything wrong here or is just freeglut just crippled?  Is GLUT crippled in general?

freeGLUT keyboard input
===

I'm using GLUT (freeglut3) (via the Haskell GLUT bindings).

<pre>
import Graphics.UI.GLUT

handleKBMouse :: KeyboardMouseCallback
handleKBMouse key keyState mods mousePos = do
    print (key, keyState, mods, mousePos)

main :: IO ()
main = do
    getArgsAndInitialize
    createWindow "testTitle"
    keyboardMouseCallback $= Just handleKBMouse
    mainLoop
</pre>

It seems that various important keys (e.g: Shift+Tab) do not call my callback. Also, "mods" doesn't describe the win-key, only Ctrl, Shift and Alt.

Having such limited access to keyboard input is a serious impediment for real application development.  Am I doing anything wrong here or is just freeglut just crippled?  Is GLUT crippled in general?
