InputHandler_X11 should now properly register input
This commit is contained in:
@@ -124,16 +124,20 @@ InputHandler_X11::~InputHandler_X11()
|
||||
void InputHandler_X11::Update(float fDeltaTime)
|
||||
{
|
||||
XEvent event;
|
||||
while(XCheckTypedEvent(X11Helper::Dpy(), KeyPress, &event)
|
||||
|| XCheckTypedEvent(X11Helper::Dpy(), KeyRelease, &event) )
|
||||
/* XXX: This steals input from other windows, but XCheckMaskEvent won't return anything
|
||||
* if it isn't called. */
|
||||
if (X11Helper::Win())
|
||||
XGrabKeyboard(X11Helper::Dpy(),X11Helper::Win(),true,GrabModeAsync,GrabModeAsync,CurrentTime);
|
||||
while(XCheckMaskEvent(X11Helper::Dpy(), KeyPressMask, &event)
|
||||
|| XCheckMaskEvent(X11Helper::Dpy(), KeyReleaseMask, &event) )
|
||||
{
|
||||
LOG->Trace("key: sym %i, key %i, state %i",
|
||||
event.xkey.keycode, XSymToKeySym(event.xkey.keycode),
|
||||
event.xkey.state );
|
||||
XLookupKeysym(&event.xkey,0), XSymToKeySym(XLookupKeysym(&event.xkey,0)),
|
||||
event.type == KeyPress );
|
||||
|
||||
DeviceInput di( DEVICE_KEYBOARD,
|
||||
XSymToKeySym(event.xkey.keycode) );
|
||||
ButtonPressed(di, event.xkey.state);
|
||||
XSymToKeySym(XLookupKeysym(&event.xkey,0)) );
|
||||
ButtonPressed(di, event.type == KeyPress);
|
||||
}
|
||||
|
||||
InputHandler::UpdateTimer();
|
||||
|
||||
Reference in New Issue
Block a user