On Tue, 30 Jan 2024 20:32:36 GMT, Martin Fox <[email protected]> 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