[prev in list] [next in list] [prev in thread] [next in thread]
List: openjdk-openjfx-dev
Subject: Integrated: 8301900: TextArea: Committing text with ENTER in an IME window inserts newline
From: Martin Fox <mfox () openjdk ! org>
Date: 2024-02-23 22:43:04
Message-ID: 6V-SNdk3DnQPAgBVDJuEDQQCKshpGilWUEzKoxSk0Fs=.24cbc996-8381-4df5-b642-064ed35ad5ce () github ! com
[Download RAW message or body]
On Fri, 26 Jan 2024 17:32:02 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.
This pull request has now been integrated.
Changeset: d9263ab2
Author: Martin Fox <mfox@openjdk.org>
URL: https://git.openjdk.org/jfx/commit/d9263ab268d33104279755dc1de139bd0835fdd7
Stats: 60 lines in 3 files changed: 35 ins; 10 del; 15 mod
8301900: TextArea: Committing text with ENTER in an IME window inserts newline
8088172: Mac: On German keyboard, pressing <+><q> inserts two apostrophes instead of \
one
8089803: [Mac, TextArea] Japanese IME, caret moves to the next line when pressing \
Return to select a candidate.
Reviewed-by: kcr, angorya
-------------
PR: https://git.openjdk.org/jfx/pull/1351
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic