On Tue, 9 May 2023 20:38:35 GMT, Martin Fox <d...@openjdk.org> wrote:

>> modules/javafx.graphics/src/main/native-glass/win/KeyTable.cpp line 366:
>> 
>>> 364:         UINT keyChar = ::MapVirtualKeyEx(UINT(hardwareCode), 2, 
>>> layout);
>>> 365:         // Filter out dead keys
>>> 366:         BOOL isDead = (keyChar & 0x80000000) != 0;
>> 
>> Wouldn't `hardwareCode >= 0` already filter out dead keys since when the 
>> highest bit is set the value is negative?
>
> I just realized that I never actually said what `hardwareCode` means on this 
> platform.
> 
> A negative number means the `hardwareCode` isn't known (in other words, the 
> KeyEvent wasn't constructed by glass). If it's not negative it's a Windows VK 
> code that identifies the key the user pressed. That code doesn't reflect 
> whether the key is dead or not. Here I'm asking what character that key would 
> generate if pressed without any modifiers and ignoring it if the key is dead.

I misread partially, somehow I read `keyChar` as the same as `hardwareCode`. 
LGTM then.

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

PR Review Comment: https://git.openjdk.org/jfx/pull/1126#discussion_r1189443592

Reply via email to