Handling keyboard events jme versus nifty

I have number of actions registered under various keys in jme3 input manager (in different parts of application, some of them from camera, some from main app). I would like to have kind of ‘quake-like’ console appearing when I press ~. Problem is, that when console appears and steals focus, key presses are still coming through to main jme3 input manager (so camera is moving on some keys etc).



Is there any smart way to block jme3 main from processing key events ? I could possibly remove all mappings on console open and add them back on console close, but I do not have access to mappings/bindings from outside of inputmanager. Subclassing input manager?

We are waiting for nifty 1.3 for that feature

For now, I have done a crude workaround. As I need only console for now, I have added raw input listeners before and after nify one. I’m handling key for showing console (~) in before-handler, showing/hiding console (and consuming the key event so it won’t appear in console) and then in post-handler I’m checking if console is open - if yes, I’m consuming all other key events (as they were handled by console already).



Not very scalable solution, but works for console only.



BTW, is selection marking in console broken for everybody? It is kind of working (stuff I try to select with mouse or shift-cursors is replaced if I type something), but there is no visual highlight of selected text.