java-cef icon indicating copy to clipboard operation
java-cef copied to clipboard

Non-US keyboard layouts don't work properly in macOS in OSR mode

Open cijaaimee opened this issue 2 years ago • 0 comments

Describe the bug When a key event is sent to CEF using offscreen rendering, the native code will only bind keys in the standard US layout when in macOS. This is because the code in charge of obtaining the virtual keycode is hardcoded to only work with this layout.

To Reproduce Steps to reproduce the behavior:

  1. Create a browser in OSR mode.
  2. Type any key that isn't part of the US keyboard layout (e.g. á, ñ`). You'll see that the key is ignored. This does not occur when OSR is disabled.

Expected behavior When typing, the key event should be forwarded to CEF.

Screenshots

Versions (please complete the following information):

  • OS: MacOS 13.0.1
  • Java Version: OpenJDK 17
  • JCEF Version: a0af101
  • CEF Version: 110.0.25

Additional context Does the problem reproduce with the JCEF simple or detailed sample application at the same version? Yes.

Does the problem reproduce with the CEF cefclient or cefsimple sample application at the same version? Yes.

Does the problem reproduce with Google Chrome at the same version? No.

Add any other context about the problem here. Here's an useful discussion on how to implement layout-independent char->keycode translation: https://stackoverflow.com/questions/1918841/how-to-convert-ascii-character-to-cgkeycode/1971027#1971027

cijaaimee avatar Jun 04 '23 20:06 cijaaimee