diff options
author | notaz | 2011-01-18 18:04:58 +0200 |
---|---|---|
committer | notaz | 2011-01-24 00:38:35 +0200 |
commit | 1bd9ee68b03333894512373d14707d04951665af (patch) | |
tree | 9d861222387184b87fe90b62eaa56efce99d5347 /frontend/xkb.c | |
parent | 5088bb7009b7517276478226dd9df66229f871bc (diff) | |
download | pcsx_rearmed-1bd9ee68b03333894512373d14707d04951665af.tar.gz pcsx_rearmed-1bd9ee68b03333894512373d14707d04951665af.tar.bz2 pcsx_rearmed-1bd9ee68b03333894512373d14707d04951665af.zip |
some frontend adjustments
Diffstat (limited to 'frontend/xkb.c')
-rw-r--r-- | frontend/xkb.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/frontend/xkb.c b/frontend/xkb.c index 874531c..7d00786 100644 --- a/frontend/xkb.c +++ b/frontend/xkb.c @@ -68,22 +68,23 @@ static void DestroyKeyboard(void) { XkbSetDetectableAutoRepeat(disp, 0, NULL); } -void x11_update_keys(void) { +int x11_update_keys(void) { uint8_t i; XEvent evt; XClientMessageEvent *xce; uint16_t Key; + static int keystate_x11; int psxkey, leave = 0; Display *disp = (Display *)gpuDisp; - if (initialized < 2000) { + if (!disp) + return 0; + + if (!initialized) { initialized++; InitKeyboard(); } - if (!disp) - return; - while (XPending(disp)) { XNextEvent(disp, &evt); switch (evt.type) { @@ -101,9 +102,9 @@ void x11_update_keys(void) { if (psxkey >= 0) { if (evt.type == KeyPress) - keystate |= 1 << psxkey; + keystate_x11 |= 1 << psxkey; else - keystate &= ~(1 << psxkey); + keystate_x11 &= ~(1 << psxkey); } if (evt.type == KeyPress && Key == XK_Escape) leave = 1; @@ -121,4 +122,6 @@ void x11_update_keys(void) { DestroyKeyboard(); exit(1); } + + return keystate_x11; } |