aboutsummaryrefslogtreecommitdiff
path: root/frontend/xkb.c
diff options
context:
space:
mode:
authornotaz2011-01-18 18:04:58 +0200
committernotaz2011-01-24 00:38:35 +0200
commit1bd9ee68b03333894512373d14707d04951665af (patch)
tree9d861222387184b87fe90b62eaa56efce99d5347 /frontend/xkb.c
parent5088bb7009b7517276478226dd9df66229f871bc (diff)
downloadpcsx_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.c17
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;
}