[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-openjfx-dev
Subject:    Re: RFR: 8301900: TextArea: Committing text with ENTER in an IME window inserts newline [v3]
From:       Kevin Rushforth <kcr () openjdk ! org>
Date:       2024-02-23 19:46:00
Message-ID: 913plAftcxWiC85gCdIo7abQwXUTuFxUwaUNVbFxj7I=.65ac4999-4962-496b-9f26-5fa70debf1d4 () github ! com
[Download RAW message or body]

On Fri, 2 Feb 2024 18:43:19 GMT, Martin Fox <mfox@openjdk.org> wrote:

> > In the Mac glass code the presence of "marked" text (which is tracked in the \
> > nsAttrBuffer) signals that an IME is active. In this state the current code \
> > assumes that when NSTextInputContext handles a `keyDown:` it will either generate \
> > a call to `insertText:replacementRange:` or one of the routines that manipulates \
> > the marked (composed) text. But this bug shows that sometimes the IME acts on the \
> > event without generating any calls back into glass at all. 
> > In this PR the logic is simplified: if the NSTextInputContext handles the \
> > `keyDown:` and there's marked (composed) text we don't generate a KeyEvent. \
> > Otherwise we do. This PR removes the `shouldProcessKeyEvent` flag since it no \
> > longer assumes we can catch callbacks to update it correctly. 
> > The existing code also assumes that the composition phase ends when the \
> > NSTextInputContext calls `insertText:replacementRange` to commit the text. This \
> > is true but if the user tries to use a dead-key sequence to generate a \
> > non-existent character (like an accented 'q') the context will call `insertText` \
> > twice while handling one key down event. In that case we can't exit the \
> > composition mode upon seeing the first `insertText` call since it will cause us \
> > to mis-handle the second one. This PR defers exiting composition mode until the \
> > end of `keyDown:`. 
> > I also updated a few deprecated constants so this file no longer generates \
> > compiler warnings.
> 
> Martin Fox has updated the pull request with a new target base due to a merge or a \
> rebase. The pull request now contains seven commits: 
> - Now handling ESC ending the composition state. Minor setEnabled cleanup.
> - Merge remote-tracking branch 'upstream/master' into macimefixes
> - When IM enabled state changes we dismiss the IM window.
> - Merge remote-tracking branch 'upstream/master' into macimefixes
> - Comment tweaks
> - Merge remote-tracking branch 'upstream/master' into macimefixes
> - Modified method of determing which keyDowns are sent as KeyEvents.

Marked as reviewed by kcr (Lead).

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

PR Review: https://git.openjdk.org/jfx/pull/1351#pullrequestreview-1898820773


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic