Hello,

Could you review a fix for jdk9, please?

    bug: https://bugs.openjdk.java.net/browse/JDK-8169355
    webrev: http://cr.openjdk.java.net/~dmarkov/8169355/webrev.00/

Problem description:
The new mechanism of dead keys detection and processing was introduced by JDK-8139189 <https://bugs.openjdk.java.net/browse/JDK-8139189>. It uses MapVirtualKey() function to detect dead key combination. Also an output of MapVirtualKey() invocation is used as a value which is send with Java's KEY_PRESSED/KEY_RELEASED events. However if the mechanism, (i.e. WindowsKeyToJavaChar() function inside awtComponent.cpp) is called from the Java layer via JNI right after a keyboard layout has been changed, MapVirtualKey() returns a character value related to the previous keyboard layout.

Fix:
The function WindowsKeyToJavaChar() has to take into account the current keyboard layout, (i.e. MapVirtualKey() should be replaced with MapVirtualKeyEx()).

Note: the corresponding regression tests, (e.g. java/awt/InputMethods/DiacriticsTest/DiacriticsTest.html) passed on the build with fix.

Thanks,
Dmitry

Reply via email to