This is the mail archive of the cygwin-xfree@cygwin.com mailing list for the Cygwin XFree86 project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Alt Gr special characters on german keyboard work only sometimes


Meanwhile I'm at another workplace, where I run win2k. Here the Altgr key works. I spyed the windows messages and came up with something peculiar:

w2k: (pressed 3*backslash)

<00001> 002C029C P WM_KEYDOWN nVirtKey:VK_CONTROL cRepeat:1 ScanCode:1D fExtended:0 fAltDown:0 fRepeat:0 fUp:0
<00002> 002C029C P WM_KEYDOWN nVirtKey:VK_MENU cRepeat:1 ScanCode:38 fExtended:1 fAltDown:1 fRepeat:0 fUp:0
<00003> 002C029C P WM_KEYDOWN nVirtKey:VK_CONTROL cRepeat:1 ScanCode:1D fExtended:0 fAltDown:1 fRepeat:1 fUp:0
<00004> 002C029C P WM_KEYDOWN nVirtKey:VK_MENU cRepeat:1 ScanCode:38 fExtended:1 fAltDown:1 fRepeat:1 fUp:0
<00005> 002C029C P WM_KEYDOWN nVirtKey:00DB cRepeat:1 ScanCode:0C fExtended:0 fAltDown:1 fRepeat:0 fUp:0
<00006> 002C029C P WM_KEYUP nVirtKey:00DB cRepeat:1 ScanCode:0C fExtended:0 fAltDown:1 fRepeat:1 fUp:1
<00007> 002C029C P WM_KEYDOWN nVirtKey:00DB cRepeat:1 ScanCode:0C fExtended:0 fAltDown:1 fRepeat:0 fUp:0
<00008> 002C029C P WM_KEYUP nVirtKey:00DB cRepeat:1 ScanCode:0C fExtended:0 fAltDown:1 fRepeat:1 fUp:1
<00009> 002C029C P WM_KEYDOWN nVirtKey:00DB cRepeat:1 ScanCode:0C fExtended:0 fAltDown:1 fRepeat:0 fUp:0
<00010> 002C029C P WM_KEYUP nVirtKey:00DB cRepeat:1 ScanCode:0C fExtended:0 fAltDown:1 fRepeat:1 fUp:1
<00011> 002C029C P WM_SYSKEYUP nVirtKey:VK_CONTROL cRepeat:1 ScanCode:1D fExtended:0 fAltDown:1 fRepeat:1 fUp:1
<00012> 002C029C P WM_KEYUP nVirtKey:VK_MENU cRepeat:1 ScanCode:38 fExtended:1 fAltDown:0 fRepeat:1 fUp:1

see the first 4 messages. apparently w2k sends

<00001> WM_KEYDOWN nVirtKey:VK_CONTROL ... fAltDown:0 fRepeat:0 
<00002> WM_KEYDOWN nVirtKey:VK_MENU ... fAltDown:1 fRepeat:0
<00003> WM_KEYDOWN nVirtKey:VK_CONTROL ... fAltDown:1 fRepeat:1
<00004> WM_KEYDOWN nVirtKey:VK_MENU ...fAltDown:1 fRepeat:1

It looks like it repeats the VK_CONTROL & VK_MENU msgs with altdown flag = 1
5 & 6 are the real key that gets pressed 'ß?\'



while XP sends: (pressed 1*backslash)

<00001> 005202C4 P WM_KEYDOWN nVirtKey:VK_CONTROL cRepeat:1 ScanCode:1D fExtended:0 fAltDown:0 fRepeat:0 fUp:0
<00002> 005202C4 P WM_KEYDOWN nVirtKey:VK_MENU cRepeat:1 ScanCode:38 fExtended:1 fAltDown:1 fRepeat:0 fUp:0
<00003> 005202C4 P WM_KEYDOWN nVirtKey:00DB cRepeat:1 ScanCode:0C fExtended:0 fAltDown:1 fRepeat:0 fUp:0
<00004> 005202C4 P WM_KEYUP nVirtKey:00DB cRepeat:1 ScanCode:0C fExtended:0 fAltDown:1 fRepeat:1 fUp:1
<00005> 005202C4 P WM_SYSKEYUP nVirtKey:VK_CONTROL cRepeat:1 ScanCode:1D fExtended:0 fAltDown:1 fRepeat:1 fUp:1
<00006> 005202C4 P WM_KEYUP nVirtKey:VK_MENU cRepeat:1 ScanCode:38 fExtended:1 fAltDown:0 fRepeat:1 fUp:1

here the keypress of 'ß?\' is sent directly after only 2 messages:

<00001> WM_KEYDOWN nVirtKey:VK_CONTROL ... fAltDown:0 fRepeat:0
<00002> WM_KEYDOWN nVirtKey:VK_MENU ... fAltDown:1 fRepeat:0
<00003> WM_KEYDOWN nVirtKey:00DB ... fAltDown:1 fRepeat:0 fUp:0
<00004> WM_KEYUP nVirtKey:00DB ... fAltDown:1 fRepeat:1 fUp:1
<00005> WM_SYSKEYUP nVirtKey:VK_CONTROL ...
<00006> WM_KEYUP nVirtKey:VK_MENU ...

with the first 2 like the first 2 messages 2k sends. Therefore the keydown message with altdown=1 for VK_CONTROL and VK_MENU are missing.

Could it be that cygwin is confused by the missing messages?

Holger



Holger Böhnke wrote:
> Hi Alexander
> 
>> This seem to be the problem. We had some reports that alt-gr does not
>> work properly on (some) WinXP machines. Do you have WinXP?
> 
> Yes, XP Prof., no Service Pack
> 
> c:\>ver
> Microsoft Windows XP [Version 5.1.2600]
> 
>> There must be a subtile difference. Maybe with the timestamp of the
>> message. Or the "Control down" and "alt down" messages come in
>> reversed order. I don't have WinXP and can't test this.
> 
> I attached the logfile of spy++
> 
> I pushed:
> altgr (holding down) - 3x backsl - release altgr : out \\\
> altgr (holding down) - 3x backsl - release altgr : out \\\
> altgr (holding down) - 3x backsl - release altgr : out <nothing>
> 
> bye
> 
> Holger


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]