On Tue, 1 Oct 2024 20:17:52 GMT, Martin Fox <m...@openjdk.org> wrote:

>> The glass code on Windows does its own dead key processing so at certain 
>> points it must clear the dead key state that the OS is maintaining. It does 
>> this by simulating a SPACE key press but this only works reliably if the 
>> SPACE key is pressed without any modifiers.
>> 
>> Currently the code is picking up the current modifier state of the keyboard. 
>> If the dead key is invoked using AltGr the code is trying to clear the dead 
>> key state using AltGr+Space. This does nothing. The fix is to ignore the 
>> current keyboard state and pretend the only key being held down is Space.
>> 
>> I haven't figured out a way of providing automated tests for dead keys. 
>> There's no way to detect whether the correct keyboard layout is active or to 
>> force the correct layout to be active.
>> 
>> To test this you'll need to install the correct layout. On Windows 11 go to 
>> Settings > Time & language > Language & region. Click on the three dots to 
>> the far right of the English entry (or whatever language you're using) and 
>> select “Language options”. Scroll down until you find “Add a keyboard”. From 
>> that button scroll through all the many, many layouts until you find “Swiss 
>> German”. Once you’ve added the keyboard you should see a button on the far 
>> right of the task bar to select the layout. The dead key for this bug is 
>> where the =/+ key is on the standard US keyboard, top row to the left of 
>> Backspace.
>
> Martin Fox has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   No point in the kbState being static here

FYI: I've updated the monkey tester keyboard event viewer (Tools -> Keyboard 
Event Viewer) to improve its output, just in case.

-------------

PR Comment: https://git.openjdk.org/jfx/pull/1585#issuecomment-2387187964

Reply via email to