RFR: 8282217: Key events (key char and key code) changed for Swiss keyboard
Nikita Provotorov
duke at openjdk.org
Fri Jan 13 22:11:04 UTC 2023
On Fri, 6 Jan 2023 22:07:33 GMT, Alisen Chung <achung at openjdk.org> wrote:
> Removed check for MapVirtualKeyEx return value causing some keys to become undefined
Hello, guys! I've just checked behavior of the fix and it actually breaks the case described in the [JDK-8139189](https://bugs.openjdk.org/browse/JDK-8139189) (to install `Programmer Dvorak` layout -> Press the key between LShift and Z on QWERTY keyboards -> Press the key C twice (which is the `I` key on the default US QWERTY layout)
Generated events before the patch (the single `č` is typed):
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=65312,keyText=Compose,keyChar=Undefined keyChar,keyLocation=KEY_LOCATION_STANDARD,rawCode=226,primaryLevelUnicode=4,scancode=86,extendedKeyCode=0xff20]
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=65312,keyText=Compose,keyChar=Undefined keyChar,keyLocation=KEY_LOCATION_STANDARD,rawCode=226,primaryLevelUnicode=4,scancode=86,extendedKeyCode=0xff20]
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=67,keyText=C,keyChar='c',keyLocation=KEY_LOCATION_STANDARD,rawCode=67,primaryLevelUnicode=99,scancode=23,extendedKeyCode=0x43]
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=67,keyText=C,keyChar='c',keyLocation=KEY_LOCATION_STANDARD,rawCode=67,primaryLevelUnicode=99,scancode=23,extendedKeyCode=0x43]
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=67,keyText=C,keyChar='c',keyLocation=KEY_LOCATION_STANDARD,rawCode=67,primaryLevelUnicode=99,scancode=23,extendedKeyCode=0x43]
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='?',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0,primaryLevelUnicode=0,scancode=0,extendedKeyCode=0x0]
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=67,keyText=C,keyChar='c',keyLocation=KEY_LOCATION_STANDARD,rawCode=67,primaryLevelUnicode=99,scancode=23,extendedKeyCode=0x43]
Including the patch (`cc` are typed):
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=65312,keyText=Compose,keyChar=' ',keyLocation=KEY_LOCATION_STANDARD,rawCode=226,primaryLevelUnicode=4,scancode=86,extendedKeyCode=0xff20]
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=65312,keyText=Compose,keyChar=' ',keyLocation=KEY_LOCATION_STANDARD,rawCode=226,primaryLevelUnicode=4,scancode=86,extendedKeyCode=0xff20]
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=67,keyText=C,keyChar='c',keyLocation=KEY_LOCATION_STANDARD,rawCode=67,primaryLevelUnicode=99,scancode=23,extendedKeyCode=0x43]
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='c',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0,primaryLevelUnicode=0,scancode=0,extendedKeyCode=0x0]
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=67,keyText=C,keyChar='c',keyLocation=KEY_LOCATION_STANDARD,rawCode=67,primaryLevelUnicode=99,scancode=23,extendedKeyCode=0x43]
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=67,keyText=C,keyChar='c',keyLocation=KEY_LOCATION_STANDARD,rawCode=67,primaryLevelUnicode=99,scancode=23,extendedKeyCode=0x43]
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='c',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0,primaryLevelUnicode=0,scancode=0,extendedKeyCode=0x0]
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=67,keyText=C,keyChar='c',keyLocation=KEY_LOCATION_STANDARD,rawCode=67,primaryLevelUnicode=99,scancode=23,extendedKeyCode=0x43]
-------------
PR: https://git.openjdk.org/jdk/pull/11887
More information about the client-libs-dev
mailing list