- static char cbuf[] = "\033 ";
- cbuf[1] = ch;
- lpage_send(kbd_codepage, cbuf + !left_alt,
- 1 + !!left_alt);
+ if(capsOn && ch < 0x80) {
+ WCHAR cbuf[2];
+ cbuf[0] = 27;
+ cbuf[1] = xlat_uskbd2cyrllic(ch);
+ luni_send(cbuf+!left_alt, 1+!!left_alt);
+ } else {
+ char cbuf[2];
+ cbuf[0] = '\033';
+ cbuf[1] = ch;
+ lpage_send(kbd_codepage, cbuf+!left_alt, 1+!!left_alt);
+ }