On Mon, 18 Sep 2023 21:14:30 GMT, Andy Goryachev <ango...@openjdk.org> wrote:

>> This is the behavior we saw on the Mac before PR #425 was integrated. As of 
>> JavaFX 21 keyPress(KeyCode.A) should generate an 'a' and never a 'q' on all 
>> Latin layouts and all platforms (on a Cyrillic layout you'll still get a 
>> Cyrillic character).
>> 
>> I can't reproduce this with the test app 
>> (tests/manual/events/KeyboardTest.java). Is there a test in this PR I should 
>> be trying?
>
> You could try this code (using this PR's code):
> 
> 
> public class KeyboardLayoutTest extends TextInputBehaviorRobotTest<TextArea> {
> 
>     public KeyboardLayoutTest() {
>         super(new TextArea());
>     }
> 
>     @BeforeEach
>     @Override
>     public void beforeEach() {
>         super.beforeEach();
>         control.setWrapText(true);
>     }
> 
>     @Test
>     public void testTyping() throws Exception {
>         KeyCode[] codes = {
>             KeyCode.A
>         };
> 
>         execute(
>             exe(() -> {
>                 control.addEventFilter(KeyEvent.ANY, (ev) -> {
>                     System.out.println(ev);
>                     ev.consume();
>                 });
>             })
>         );
> 
>         for(KeyCode cd: codes) {
>             Util.runAndWait(() -> {
>                 robot.keyPress(cd);
>                 robot.keyRelease(cd);
>             });
>         }
>     }
> }

I tried your test code and couldn't reproduce the problem. Both U.S. English 
and French layouts gave me the expected result (an 'a' character). I also tried 
a Russian keyboard just to verify that it would generate a Cyrillic character 
which it did. I'm running the tests against JavaFX built using the sources in 
your pull request.

French


KeyEvent [source = TextArea@7237703[styleClass=text-input text-area], target = 
TextArea@7237703[styleClass=text-input text-area], eventType = KEY_PRESSED, 
consumed = false, character = ?, text = a, code = A]
KeyEvent [source = TextArea@7237703[styleClass=text-input text-area], target = 
TextArea@7237703[styleClass=text-input text-area], eventType = KEY_TYPED, 
consumed = false, character = a, text = , code = UNDEFINED]
KeyEvent [source = TextArea@7237703[styleClass=text-input text-area], target = 
TextArea@7237703[styleClass=text-input text-area], eventType = KEY_RELEASED, 
consumed = false, character = ?, text = a, code = A]


U.S. English


KeyEvent [source = TextArea@73459ba5[styleClass=text-input text-area], target = 
TextArea@73459ba5[styleClass=text-input text-area], eventType = KEY_PRESSED, 
consumed = false, character = ?, text = a, code = A]
KeyEvent [source = TextArea@73459ba5[styleClass=text-input text-area], target = 
TextArea@73459ba5[styleClass=text-input text-area], eventType = KEY_TYPED, 
consumed = false, character = a, text = , code = UNDEFINED]
KeyEvent [source = TextArea@73459ba5[styleClass=text-input text-area], target = 
TextArea@73459ba5[styleClass=text-input text-area], eventType = KEY_RELEASED, 
consumed = false, character = ?, text = a, code = A]

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

PR Review Comment: https://git.openjdk.org/jfx/pull/1221#discussion_r1330631833

Reply via email to