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 );