Dead keys followed by space

Martin Fox martin at martinfox.com
Fri Sep 27 18:43:10 UTC 2024


I don’t think a TextFormatter would work. The formatter would just see a caret arrive and then a space character. It would look just like the user typed those characters separately.

The unexpected sequence is:
- a PRESSED event arrives for the SPACE key
- a TYPED event arrives for the dead key character
- a TYPED event arrives for the space character
- a RELEASED event arrives for the SPACE key

You would have to register some filters that track state to detect this sequence and discard the second TYPED event.

I can’t think of another way of doing this. You can’t track the dead key state reliably or know for sure that a TYPED event occurred while a dead key sequence was ending.

I’ve submitted a PR (it’s a very small change to the code).

Martin

> On Sep 27, 2024, at 6:18 AM, Thiago Milczarek Sayão <thiago.sayao at gmail.com> wrote:
> 
> Johan,
> 
> I guess you could use a TextFormatter<> to remove the extra space when there's a dead key character before. It would work as
> 
> textField.setTextFormatter(new PasswordTextFilter())
> 
> public class PasswordTextFilter implements UnaryOperator<TextFormatter.Change> {
> 
>     @Override
>     public TextFormatter.Change apply(final TextFormatter.Change aT) {
>        //logic to ignore the space if there's a dead key before
>     }
> }
> 
> 
> 
> 
> 
> Em sex., 27 de set. de 2024 às 09:42, Johan Corveleyn <jcorvel at gmail.com <mailto:jcorvel at gmail.com>> escreveu:
>> On Thu, Sep 26, 2024 at 10:37 AM Johan Corveleyn <jcorvel at gmail.com <mailto:jcorvel at gmail.com>> wrote:
>> >
>> > Thanks, and thank you Martin for filing the issue https://bugs.openjdk.org/browse/JDK-8340982. I'll try to create an account on openjdk.org <http://openjdk.org/> to be able to watch the issue :-).
>> 
>> Seems it's not that easy to get an account on bugs.openjdk.org <http://bugs.openjdk.org/>, so
>> never mind that ... I'll check in on the issue from time to time (and
>> of course I keep an eye on this mailinglist anyway). I'm not expecting
>> this to be fixed immediately of course, I suppose everyone here has
>> lots of things on their plate, and lots of other priorities; and I
>> have little to offer as contribution myself at the moment.
>> 
>> In the meantime: does anybody have an idea for an elegant workaround
>> for this (to have a TextField and PasswordField where ^+<space> just
>> yields '^' on Windows + US International keyboard)? Injecting a Swing
>> component for this is an option, but I'd like to know if there are
>> others.
>> 
>> Thanks,
>> -- 
>> Johan

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20240927/cd2eda85/attachment.htm>


More information about the openjfx-dev mailing list