RFR: 8320773: [macOS] All IME input blocked

yosbits duke at openjdk.org
Tue Nov 28 09:54:19 UTC 2023


On Mon, 27 Nov 2023 17:07:38 GMT, Martin Fox <mfox at openjdk.org> wrote:

> The changes submitted in PR #1209 broke IME input on macOS 12 and 13 (at least on Apple Silicon). Calling charactersByApplyingModifiers on an NSEvent alters its state in some way that confuses NSTextInputContext.handleEvent. The result is that all key events are discarded if an IME is active. Apple fixed this bug in macOS 14 Sonoma.
> 
> In this PR we switch to using the same Carbon call that we started using in PR #425 (jfx21) to query the keyboard layout.
> 
> This is a new implementation of the fix for [JDK-8087700](https://bugs.openjdk.org/browse/JDK-8087700) so that bug will need to be re-tested.

A short test appears to have solved the problem caused by side effects.
I also found a known IME related issue, but am concerned that this fix will not complicate it.

Steps to reproduce:

Click on another TextInput control in the middle of an IME conversion in the TextInput control to move the focus.

Issue:

IME conversion candidate popup moves to the clicked destination,
locked into an input disabled state in the original TextInput.

Expected Behavior:

The conversion is committed.
The IME conversion candidate popup is closed.

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

PR Comment: https://git.openjdk.org/jfx/pull/1295#issuecomment-1829461616


More information about the openjfx-dev mailing list