Diff

Differences From Artifact [29c0111940]:

To Artifact [66efa13a56]:


3330
3331
3332
3333
3334
3335
3336








3337
3338
3339
3340
3341
3342
3343
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351







+
+
+
+
+
+
+
+







	else
	    alt_sum = 0;
    }

    /* Okay we've done everything interesting; let windows deal with 
     * the boring stuff */
    {
	BOOL capsOn=0;

	/* helg: clear CAPS LOCK state if caps lock switches to cyrillic */
	if(cfg.xlat_capslockcyr && keystate[VK_CAPITAL] != 0) {
	    capsOn= !left_alt;
	    keystate[VK_CAPITAL] = 0;
	}

	r = ToAsciiEx(wParam, scan, keystate, keys, 0, kbd_layout);
#ifdef SHOW_TOASCII_RESULT
	if (r == 1 && !key_down) {
	    if (alt_sum) {
		if (in_utf || dbcs_screenfont)
		    debug((", (U+%04x)", alt_sum));
		else
3398
3399
3400
3401
3402
3403
3404






3405
3406
3407




3408

3409
3410
3411
3412
3413
3414
3415
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418



3419
3420
3421
3422

3423
3424
3425
3426
3427
3428
3429
3430







+
+
+
+
+
+
-
-
-
+
+
+
+
-
+







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

	    /* This is so the ALT-Numpad and dead keys work correctly. */
	    keys[0] = 0;