shithub: alienpatch

Download patch

ref: 479e7f58195320ba9695279fa7e9e57028b60759
parent: 4e4e787ffc668f37caea7ec8cc00e817a4500772
author: qwx <qwx@sciops.net>
date: Sat Oct 8 05:22:20 EDT 2022

add npe-modhacks: keyboard hacks for modifier keys, pending additions to kbdfs maybe

--- /dev/null
+++ b/npe-modhacks
@@ -1,0 +1,75 @@
+diff c653369e862d2b2235133cfcb0391bc4809ce4b1 uncommitted
+--- a/include/npe/SDL2/SDL_keycode.h
++++ b/include/npe/SDL2/SDL_keycode.h
+@@ -81,21 +81,21 @@
+ 	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,
+ 
+ 	/* FIXME no distinction */
+ 	KMOD_LSHIFT = 1<<0,
+-	KMOD_RSHIFT = KMOD_LSHIFT,
++	KMOD_RSHIFT = 1<<7,
+ 	KMOD_LCTRL = 1<<1,
+-	KMOD_RCTRL = KMOD_LCTRL,
++	KMOD_RCTRL = 1<<6,
+ 	KMOD_LALT = 1<<2,
+ 	KMOD_RALT = 1<<3,
+ 	KMOD_LGUI = 1<<4,
+--- 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)
+@@ -300,6 +305,10 @@
+ 						kmod |= KMOD_RALT;
+ 					else if(r == Kmod4)
+ 						kmod |= KMOD_LGUI;
++					else if(r == Spec|0x6a)
++						kmod |= KMOD_RCTRL;
++					else if (r == Spec|0x69)
++						kmod |= KMOD_RSHIFT;
+ 					else{
+ 						o = npe_sdl.textinput ? r : tolowerrune(r);
+ 						continue;
+@@ -323,6 +332,12 @@
+ 						kmod &= ~KMOD_LSHIFT;
+ 					else if(r == Kctl)
+ 						kmod &= ~KMOD_LCTRL;
++					else if (r == Kcaps)
++						kmod &= ~KMOD_CAPS;
++					else if(r == Spec|0x6a)
++						kmod &= ~KMOD_RCTRL;
++					else if (r == Spec|0x69)
++						kmod &= ~KMOD_RSHIFT;
+ 					else{
+ 						t = Rup;
+ 						send(salt[Ckey].c, &r);