RFR: 8262945: [macos] Regression Manual Test for Key Events Fails
Alisen Chung
github.com+90066231+alisenchung at openjdk.java.net
Wed Sep 22 08:08:17 UTC 2021
On Tue, 21 Sep 2021 22:39:12 GMT, Phil Race <prr at openjdk.org> wrote:
> where did this value come from ?
The 0x01000000 offset value is copied from share/classes/sun/awt/ExtendedKeyCodes.java. When using getExtendedKeyCodeForChar(int c), if the character isn't in the regularKeyCodesMap, that 0x01000000 offset is added and the new value is checked for again in the extendedKeyCodeSet. I noticed that Russian was in the extendedKeyCodeSet so I just checked for Russian active keyboard layout and added that offset since the case wasn't being handled before.
> Are we doing something weird, or does macOS really make developers have to understand every single supported language -> keyboard mapping ?
Is there a better (more generic) way ?
I can try to test whether removing the Russian language check also fixes other languages (since that's what we do in ExtendedKeyCodes.java anyway), but macOS might have a different system of keycodes so I can't tell for sure that it would work for all of them.
> Is this the ONLY place we'd need to add understanding of Russian ? If there's more it would not be worth doing it just here.
>From my understanding anything that relies on keycodes would be fixed with this since AWTEvent.m was only checking for English to translate NSKeyCodes to Java virtual keycodes. I didn't see anywhere else related to keycodes we would need to have a language check .
-------------
PR: https://git.openjdk.java.net/jdk/pull/5617
More information about the client-libs-dev
mailing list