> It appears that is the problem. With that section of code commented
> out, the caps/shift toggling bug does not occur, and everything seems to
> still work okay. I'm not sure what that bit of code is supposed to do
> though. The change was made in wkeybd.c in April 2001, so I doubt the
> bug has layed dormant for that long. Maybe something changed with the
> latest versions of DirectX?
>
> [...]
>
> If you're reading, Eric, care to comment?
IIRC this code was a counter-measure, that is Windows was toggling the
Capslock off when shift was pressed and not toggling it off on a second
press on Capslock (until the next shift). In order to mimic the Linux
behaviour, you therefore needed to simulate a Capslock keypress on these
events.
Are you saying that Windows now mimics the Linux behaviour by default?