RFR: 8322784: JFXPanel calls InputMethodRequests on wrong thread [v3]

Andy Goryachev angorya at openjdk.org
Tue Jan 23 18:58:40 UTC 2024


On Tue, 23 Jan 2024 17:24:05 GMT, Martin Fox <mfox at openjdk.org> wrote:

>> On Windows we need to ensure InputMethodRequests coming from JFXPanel are processed on the JavaFX application thread instead of the AWT EventQueue thread. This PR adds the runAndWait() calls to do that.
>> 
>> This would be difficult to test on Windows without a fix for [JDK-8090267](https://bugs.openjdk.org/browse/JDK-8090267) so I've included the fix first proposed by @prsadhuk in PR #1169. If a developer uses the sample code provided in the JavaDoc to create and show a JFXPanel there's a good chance the JFXPanel will get focus before the scene has been set. To ensure AWT always treats the JFXPanel as an active IME client we return a stub version of the InputMethodRequests object if there's no scene. AWT will continue to ask for the InputMethodRequests and once the scene has been set the panel will return a non-stub version.
>
> Martin Fox has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Switch to using AtomicReference/AtomicInteger

verified on windows 11 with atomic references, thank you for making the change!

I'll probably create a new bug for the misplaced IME window issue.

For the misplaced IME window, I could only find this - 
[JDK-8088485](https://bugs.openjdk.org/browse/JDK-8088485) Windows 8, Chinese input method cadidate window is always placed at the bottom of the screen.

Not sure if that's the same issue or not, as it is pretty old.

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

Marked as reviewed by angorya (Reviewer).

PR Review: https://git.openjdk.org/jfx/pull/1337#pullrequestreview-1839689494
PR Comment: https://git.openjdk.org/jfx/pull/1337#issuecomment-1906725825


More information about the openjfx-dev mailing list