I've been trying for some time to make the so-called SDL_WINDOWID hack work under Linux using the Debian packages of Ogre which are GLX things.
The problem is that SDL_PollEvent(...) never returns an event.
Here's what I do in the application:
- 1. Create the root
2. Create the renderwindow
3. Use renderwindow->getCustomAttribute("GLXWINDOW", win)
4. Set the environment variable SDL_WINDOWID=<win>. For <win> I've tried both "0x%X", "0x%x" and "%d" formatting
5. Initialize SDL using SDL_Init(SDL_INIT_VIDEO)
6. Expose the glx window interface: renderwindow->getCustomAttribute("GLXWINDOWINTERFACE", iface) iface->exposed(true);
7. Initialize some things to look at (color, a mesh, blah blah)
8. Set up a framelistener
9. root->startRendering()
Now, the framelistener from step 8 of course has a SDL_PollEvent(&e) check and should dump something to my console whenever I hit a key or move the mouse (which is grabbed). But it doesn't

If I interrupt the application (CTRL+C) in the console, I do receive the SDL_QUIT event.
Does anyone have a clue on what I might be doing incorrectly?
I've tried moving around with step 5 (SDL_Init), but this shouldn't matter as long as the SDL_WINDOWID variable is set before the init-call. My application is single-threaded.
If I get it working, I'll update the wiki so nobody has to bang his/her head so hard at the keyboard as much as I have...

Thanks,
Jakob