RFR: 8278938: [Win] Robot can target wrong key for punctuation and symbols [v3]
Kevin Rushforth
kcr at openjdk.org
Mon Apr 10 22:24:43 UTC 2023
On Fri, 7 Apr 2023 17:19:56 GMT, Martin Fox <duke at openjdk.org> wrote:
>> When processing a `WM_CHAR` event on an OEM key (punctuation, symbol, dead key) the glass code will dynamically query the key's unshifted character to determine the Java code to assign to it. This is necessary since the relationship between OEM key codes and the characters they generate varies from layout to layout.
>>
>> The Robot implementation was consulting a table which assumed a fixed relationship between Java codes and Windows key codes even for the OEM keys. The table was also missing entries for any Java code not on a US QWERTY layout, like PLUS.
>>
>> In this PR if we don't find the Java code in the table or if it maps to an OEM key (which may be wrong) we sweep through all the OEM keys looking for the matching Java code.
>
> Martin Fox has updated the pull request incrementally with one additional commit since the last revision:
>
> Updated license header copyrights
The code changes look fine to me. I do have two minor points about code style.
* Please enclose all single-line targets of `if`, etc., with curly braces.
* I also recommend (but do not insist), that the opening curly brace the target block of `if`, etc., be on the same line as the `if`.
We aren't quite as rigorous on code style in native code, but for code that isn't third-party, consistency is a good thing.
modules/javafx.graphics/src/main/native-glass/win/KeyTable.cpp line 210:
> 208: {
> 209: if (oemKeys[i] == vkey)
> 210: return true;
Please enclose this in curly braces (or move the `return true;` to be on the same line as the `if`).
modules/javafx.graphics/src/main/native-glass/win/KeyTable.cpp line 287:
> 285:
> 286: if (jkey == com_sun_glass_events_KeyEvent_VK_UNDEFINED)
> 287: return;
Same.
-------------
PR Review: https://git.openjdk.org/jfx/pull/702#pullrequestreview-1376569816
PR Review Comment: https://git.openjdk.org/jfx/pull/702#discussion_r1160954017
PR Review Comment: https://git.openjdk.org/jfx/pull/702#discussion_r1160955289
More information about the openjfx-dev
mailing list