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

Paul Loewenstein paul.loewenstein@gmail.com
Sat Jan 17 23:10:00 GMT 2009


Jon,

Sorry, I did the diff backwards.  You can tell I don't do this often.

Corrected .diffs attached, so you don't have to use the patch reverse 
option.

Paul

Paul Loewenstein wrote:
> 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/
>>
>
> ------------------------------------------------------------------------
>
> --
> 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/357dd41b/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/357dd41b/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