RFR: 8320912: IME should commit on focus change
Kevin Rushforth
kcr at openjdk.org
Fri Feb 2 16:28:06 UTC 2024
On Tue, 30 Jan 2024 20:32:36 GMT, Martin Fox <mfox at openjdk.org> wrote:
> This is a Mac only bug. If the user was in the middle of IM text composition and clicked on a different node the partially composed text was left in the old node and the IM window wasn't dismissed. This PR implements the existing finishInputMethodComposition call so it can commit the text and dismiss the IM window before focus moves away from the node where composition was taking place.
>
> This PR changes the implementation of `unmarkText` to match what we want and what Apple says it should do ("The text view should accept the marked text as if it had been inserted normally"). With that said I haven't found an IME that calls this routine.
The code changes look good. I did some cursory testing (since both you and Andy did extensive testing) and it fixes the bug.
I left one minor comment. If you choose to fix it, I'll reapprove.
modules/javafx.graphics/src/main/java/com/sun/glass/ui/mac/MacView.java line 81:
> 79: @Override native protected void _exitFullscreen(long ptr, boolean animate);
> 80: @Override native protected void _enableInputMethodEvents(long ptr, boolean enable);
> 81: @Override native protected void _finishInputMethodComposition(long ptr);
Now that you override this method on Mac, I recommend changing the comment in the base class from `... needed only on Windows` to `... needed only on some platforms`.
-------------
Marked as reviewed by kcr (Lead).
PR Review: https://git.openjdk.org/jfx/pull/1356#pullrequestreview-1859616385
PR Review Comment: https://git.openjdk.org/jfx/pull/1356#discussion_r1476258024
More information about the openjfx-dev
mailing list