X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=frontend%2Fxkb.c;h=88dbc5611e4dabb22850fda958178fadb974f0b0;hp=7d007866cc5e25c29d91ebaf6e598f3d80ccbc64;hb=4218954fcca1237c29f0ba071a4e62d80542cd7e;hpb=de910c6be0c5523bd6c29b527ded4323fb8e85eb diff --git a/frontend/xkb.c b/frontend/xkb.c index 7d007866..88dbc561 100644 --- a/frontend/xkb.c +++ b/frontend/xkb.c @@ -44,6 +44,11 @@ static const struct { { XK_t, DKEY_R2 }, { XK_c, DKEY_SELECT }, { XK_v, DKEY_START }, + + { XK_F6, 32 + SACTION_SAVE_STATE }, + { XK_F7, 32 + SACTION_PREV_SSLOT }, + { XK_F8, 32 + SACTION_NEXT_SSLOT }, + { XK_F9, 32 + SACTION_LOAD_STATE }, }; static Atom wmprotocols, wmdelwindow; @@ -68,7 +73,7 @@ static void DestroyKeyboard(void) { XkbSetDetectableAutoRepeat(disp, 0, NULL); } -int x11_update_keys(void) { +int x11_update_keys(unsigned int *action) { uint8_t i; XEvent evt; XClientMessageEvent *xce; @@ -100,14 +105,18 @@ int x11_update_keys(void) { } } - if (psxkey >= 0) { + if (0 <= psxkey && psxkey < 32) { if (evt.type == KeyPress) keystate_x11 |= 1 << psxkey; else keystate_x11 &= ~(1 << psxkey); } - if (evt.type == KeyPress && Key == XK_Escape) - leave = 1; + if (evt.type == KeyPress) { + if (psxkey > 32) + *action = psxkey - 32; + if (Key == XK_Escape) + leave = 1; + } break; case ClientMessage: