ref: 05fe34f08ba2fefa2b5b6911bf322a8ef44eb03c
dir: /npe-modhacks/
diff c653369e862d2b2235133cfcb0391bc4809ce4b1 uncommitted
--- a/include/npe/SDL2/SDL_keycode.h
+++ b/include/npe/SDL2/SDL_keycode.h
@@ -81,13 +81,13 @@
SDLK_RALT = Kaltgr, /* FIXME what about keyboards without it? */
/* FIXME no distinction */
SDLK_LSHIFT = Kshift,
- SDLK_RSHIFT = SDLK_LSHIFT,
+ SDLK_RSHIFT = Spec|0x69, /* hack */
SDLK_LCTRL = Kctl,
- SDLK_RCTRL = '>', /* FIXME this is a hack */
+ SDLK_RCTRL = Spec|0x6a, /* hack */
+ SDLK_CAPSLOCK = Kcaps,
/* FIXME not bound to anything */
SDLK_UNKNOWN = -99999,
- SDLK_CAPSLOCK,
SDLK_KP_ENTER,
SDLK_AC_BACK,
--- a/libnpe_sdl2/events.c
+++ b/libnpe_sdl2/events.c
@@ -206,6 +206,9 @@
if(r == Kalt) return SDL_SCANCODE_LALT;
if(r == Kmod4) return SDL_SCANCODE_LGUI;
if(r == Kaltgr) return SDL_SCANCODE_RALT;
+ if(r == Kcaps) return SDL_SCANCODE_CAPSLOCK;
+ if(r == Spec|0x69) return SDL_SCANCODE_RSHIFT;
+ if(r == Spec|0x6a) return SDL_SCANCODE_RCTRL;
if(r >= (KF|1) && r <= (KF|12)) return SDL_SCANCODE_F1 + r - (KF|1);
@@ -294,6 +297,8 @@
kmod |= KMOD_LALT;
}else if (r == Kshift)
kmod |= KMOD_LSHIFT;
+ else if (r == Kcaps)
+ kmod |= KMOD_CAPS;
else if(r == Kctl)
kmod |= KMOD_LCTRL;
else if(r == Kaltgr)
@@ -323,6 +328,8 @@
kmod &= ~KMOD_LSHIFT;
else if(r == Kctl)
kmod &= ~KMOD_LCTRL;
+ else if (r == Kcaps)
+ kmod &= ~KMOD_CAPS;
else{
t = Rup;
send(salt[Ckey].c, &r);