[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