RFR: 8356652: Input field ignores custom input source characters

Martin Fox mfox at openjdk.org
Thu May 15 19:06:56 UTC 2025


On Wed, 14 May 2025 15:31:46 GMT, Martin Fox <mfox at openjdk.org> wrote:

> Under the hood the Keyman input method appears as a US English keyboard layout. The characters attached to an NSEvent are always US English Roman even if the selected Keyman layout is, say, Hebrew or Dvorak. Keyman sends the correct Hebrew or Dvorak character to insertText:replacementRange: instead.
> 
> This PR special-cases the Keyman layout, detecting it using the same method that AWT does. When Keyman is active Glass records the insertText: character and uses that when sending out KeyEvents.

The N key in the Himyarit Musnad layout shouldn't generate a character (just a beep). Under the hood glass is seeing a keyDown: event for the N key (same as it would for a U.S. English layout) so it generates a KeyEvent. I can't figure out a good way of avoiding this, any fix I can think of would also affect keys like Tab  where we *have* to generate a KeyEvent. I'll continue to think about this but for now this PR gets Keyman working at some minimal level and I have my doubts that we can do much better.

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

PR Comment: https://git.openjdk.org/jfx/pull/1805#issuecomment-2884805897


More information about the openjfx-dev mailing list