While running under X, the ExampleFrameListener sets up OIS such that it grabs the mouse/keyboard. This is a problem if one wants to do something else while running the application (debug with GDB, look at the current state of the log, whatever). Whenever I hit a breakpoint, it just got stuck and I had to restart X.

I've made a patch to ExampleFrameListener.h that fixes this problem. You might have to put guards like '#if LINUX' around it, but it's just a propertylist, so I think it wouldn't harm and would just be ignored on other platforms.
Code: Select all
--- ExampleFrameListener1.h 2009-03-19 14:35:20.000000000 -0700
+++ ExampleFrameListener2.h 2009-03-19 14:35:40.000000000 -0700
@@ -105,6 +105,8 @@
win->getCustomAttribute("WINDOW", &windowHnd);
windowHndStr << windowHnd;
pl.insert(std::make_pair(std::string("WINDOW"), windowHndStr.str()));
+ pl.insert(std::make_pair(std::string("x11_mouse_grab"), std::string("false")));
+ pl.insert(std::make_pair(std::string("x11_keyboard_grab"), std::string("false")));
mInputManager = OIS::InputManager::createInputSystem( pl );