ref: c2103276d324781df709f39564f54da596f302d8
dir: /npe-modhacks/
diff 65ce57807eaac59d51b30ba4b9c9e56e31ad3701 uncommitted
--- a/libnpe_sdl2/events.c
+++ b/libnpe_sdl2/events.c
@@ -444,7 +444,7 @@
kbdproc(void *)
{
char buf[128], buf2[128], *s;
- int kfd, n, kbin, t;
+ int kfd, n, kbin, t, ign;
Rune r, scan, o;
threadsetname("kbdproc");
@@ -456,6 +456,7 @@
buf2[1] = 0;
buf[0] = 0;
kmod = 0;
+ ign = 0;
for(;;){
if(buf[0] != 0){
n = strlen(buf)+1;
@@ -472,8 +473,12 @@
switch(buf[0]){
case 'c':
if(chartorune(&r, buf+1) > 0 && r != Runeerror){
- if(ISTEXT(r))
- o = r;
+ if(ign){
+ ign = 0;
+ break;
+ }
+ if(npe_sdl.textinput && ISTEXT(r))
+ o = tolowerrune(r);
send(salt[Ckey].c, &o);
send(salt[Ckeytype].c, &t);
t = Rrepeat;
@@ -510,14 +515,17 @@
kmod |= KMOD_RSHIFT;
else if(r == Krctl)
kmod |= KMOD_RCTRL;
+ /*
else{
o = npe_sdl.textinput ? r : tolowerrune(r);
continue;
}
+ */
o = r;
send(salt[Ckey].c, &r);
send(salt[Ckeytype].c, &t);
t = Rrepeat;
+ ign = 1;
}
}
break;
@@ -551,6 +559,7 @@
t = Rup;
send(salt[Ckey].c, &r);
send(salt[Ckeytype].c, &t);
+ ign = 0;
}
}
break;