[patch 4/7] Cygwin/X: Invent a scan code if we dont have one

Paul Loewenstein paul.loewenstein@gmail.com
Sat Jan 17 22:33:00 GMT 2009


Jon,

Attached are my final patches.  MAPVK_VK_TO_VSC_EX (which is 4, not 3) 
did not help with the numeric-keypad key/num-lock problem.  I have fixed 
that problem with an update to the special case table in winkeybd.h.  I 
have also added to that table the (generated by software only) codes for 
left/right-specific shift/control/alt.  I have not tested the 
left/right-specific entries.  You may want to check that I have put the 
correct codes in the correct rows (that correspond to the codes).

Paul

Paul Loewenstein wrote:
> I plan to do a reasonably thorough investigation of what scan codes 
> show up during speech recognition.  I believe I have seen both 0 and 1 
> (the ESC scancode).  The latter must be a bug (almost certainly 
> Microsoft's) rather than a mere omission, but is much simpler to work 
> around than to get fixed.  I believe it is safe to regenerate the 
> scancode for ESC, for all keyboards, even if the scancode is provided.
>
> Have you looked at using| MAPVK_VK_TO_VSC_EX |(3) instead of  
> MAPVK_VK_TO_VSC(0)?  This may solve the numeric keypad/numlock problem 
> described below. The code then has to look at the HIBYTE of the 
> regenerated iParamScanCode to check for E0, the extended key scancode, 
> and set KF_EXTENDED bit in HIWORD (lParam) if E0, then clear HIBYTE 
> (iParamScanCode).
>
> When num-lock is asserted; with my tentative fix (using 
> MAPVK_VK_TO_VSC) saying "move to end of line" generates "1".  However, 
> saying "press end" generates a fake "end" key correctly, I would guess 
> by enclosing the simulated key with simulated num-lock keystrokes.
>
> Another valid way of dealing with these keys in the absence of a scan 
> code is to generate an extended key code (i.e. for the keys between 
> the numeric keypad and the alphabetic keys).
>
> To resolve some of the above guesswork, I need to quickly hack an 
> application that displays both the virtual key code and the scan code, 
> together with the extended key indication. I should be able to do that 
> with a quick modification to publicly available code.  I can also 
> modify it to test |MAPVK_VK_TO_VSC_EX|, which may solve the numeric 
> keypad scancode problem problem cleanly by providing extended keycodes 
> instead.
>
> I would prefer to perform a clean, single fix.  I'll also use diff!!
>
> Paul
>
> Reini Urban wrote:
>> Shouldn't we properly attribute Paul Loewenstein at least in the 
>> patch who came up with this idea. 
>
>
> Jon TURNEY wrote:
>> Reini Urban wrote:
>>> Shouldn't we properly attribute Paul Loewenstein at least in the 
>>> patch who came up with this idea.
>>
>> Indeed, thanks for pointing out this oversight.
>>
>> Revised patch attached.
>>
>> That's what happens to people who don't use diff :-)
>> ------------------------------------------------------------------------
>>
>> -- 
>> Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
>> Problem reports:       http://cygwin.com/problems.html
>> Documentation:         http://x.cygwin.com/docs/
>> FAQ:                   http://x.cygwin.com/docs/faq/
>

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: winkeybd.c.diff
URL: <http://cygwin.com/pipermail/cygwin-xfree/attachments/20090117/81ec951f/attachment.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: winkeybd.h.diff
URL: <http://cygwin.com/pipermail/cygwin-xfree/attachments/20090117/81ec951f/attachment-0001.ksh>
-------------- next part --------------
--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://x.cygwin.com/docs/
FAQ:                   http://x.cygwin.com/docs/faq/


More information about the Cygwin-xfree mailing list