Diff

Differences From Artifact [29c0111940]:

To Artifact [66efa13a56]:


3330
3331
3332
3333
3334
3335
3336








3337
3338
3339
3340
3341
3342
3343
	else
	    alt_sum = 0;
    }

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








	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







>
>
>
>
>
>
>
>







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
			     */
			    ldisc_send(&ch, 1);
			}
			alt_sum = 0;
		    } else
			lpage_send(kbd_codepage, &ch, 1);
		} else {






		    static char cbuf[] = "\033 ";

		    cbuf[1] = ch;
		    lpage_send(kbd_codepage, cbuf + !left_alt,
			       1 + !!left_alt);

		}
		show_mouseptr(0);
	    }

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








>
>
>
>
>
>
|
>
|
|
<
>







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 {
			char cbuf[2];
			cbuf[0] = '\033';
			cbuf[1] = ch;
			lpage_send(kbd_codepage, cbuf+!left_alt, 1+!!left_alt);

		    }
		}
		show_mouseptr(0);
	    }

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