On Fri, 27 Sep 2024 22:54:59 GMT, Andy Goryachev <ango...@openjdk.org> wrote:

>> The standard across all platforms is:
>> 
>> - A dead key followed by a composable character generates the composed 
>> character. For example, a circumflex dead key followed by an 'e' should 
>> generate 'ê'.
>> - A dead key followed by a character that can't compose with it generates a 
>> spacing character followed by the non-composable character. On Windows US 
>> International a circumflex dead key followed by a 'q' generates '^q'. The 
>> spacing character corresponding to the dead key varies based on the OS and 
>> layout.
>> - An exception is SPACE. On all platforms a dead key followed by SPACE 
>> should generate just the spacing version of the dead key but *not* a space 
>> character. Users rely on this shortcut to quickly access the character 
>> 'hidden' by the dead key.
>> 
>> The Windows glass code didn't implement the Space exception. This PR fixes 
>> that.
>> 
>> On Windows the US  US International layout. Shift+6 is the dead key for a 
>> circumflex diacritic if you want to test out the combinations mentioned 
>> above.
>> 
>> For some reason Windows 11 hides this setting well. To install a US 
>> International layout:
>> - Go to Settings > Time & Language > Language & Region.
>> - In the entry for English click on the three dots to the far right and 
>> select 'Language Options'. 
>> - Scroll down until you see 'Installed keyboards' and select 'Add a 
>> keyboard'.
>> - From the list select "United States - International".
>> To actually use the layout look to the right of the Task Bar and you should 
>> see a button for choosing the layout (it will contain the word "ENG").
>
> Using DEAD_ACUTE key the sequence printed by the Keyboard Event Viewer in the 
> Monkey Tester -
> master branch:
> 
> KeyEvent{type=KEY_PRESSED, character=<\u00>, text=', code=DEAD_ACUTE}
> KeyEvent{type=KEY_PRESSED, character=<\u00>, text= , code=SPACE}
> KeyEvent{type=KEY_TYPED, character=', text=, code=UNDEFINED}
> KeyEvent{type=KEY_TYPED, character=<\u20>, text=, code=UNDEFINED}
> KeyEvent{type=KEY_RELEASED, character=<\u00>, text= , code=SPACE}
> 
> 
> 
> 
> with this PR:
> 
> KeyEvent{type=KEY_PRESSED, character=<\u00>, text=', code=DEAD_ACUTE}
> KeyEvent{type=KEY_PRESSED, character=<\u00>, text= , code=SPACE}
> KeyEvent{type=KEY_TYPED, character=', text=, code=UNDEFINED}
> KeyEvent{type=KEY_RELEASED, character=<\u00>, text= , code=SPACE}
> 
> 
> Do we need to create a new ticket for DEAD_ACUTE + c ?
> Will it be related to 
> [JDK-8183521](https://bugs.openjdk.org/browse/JDK-8183521) ?

@andy-goryachev-oracle Sorry, I misread your earlier message.

You're right, in JavaFX DEAD_ACUTE + c is producing the wrong result with the 
U.S. International layout. We should see ç. I will enter a bug.

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

PR Comment: https://git.openjdk.org/jfx/pull/1584#issuecomment-2380778162

Reply via email to