Dead keys followed by space
John Hendrikx
john.hendrikx at gmail.com
Thu Sep 26 20:21:27 UTC 2024
> For some reason mails on the openjfx-dev mailinglist coming from
> martin at martinfox.com are not coming through to me
I have the same problem.
It sometimes takes a while, and sometimes they never get through :/ It
may indeed by Gmail, as I use that as well for the mailinglist.
--John
On 26/09/2024 10:37, Johan Corveleyn 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 :-).
>
> Tangentially:
> For some reason mails on the openjfx-dev mailinglist coming from
> martin at martinfox.com are not coming through to me. I only saw this
> thanks to Thiago's reply below (which prompted me to realize that I
> have missed Martin's mail). It's in the archives on
> https://mail.openjdk.org/pipermail/openjfx-dev/2024-September/thread.html
> alright, which is where I saw Martin's latest reply about filing the
> issue. It seems mails from mfox at openjdk.org are coming through to me,
> but from martin at martinfox.com not. Maybe some overzealous filtering by
> Gmail (not sure whether it's only an issue for me, or also for other
> gmail users). I'll try to investigate a bit more why gmail seems to be
> dropping these mails for me :-/.
>
> --
> Johan
>
> On Wed, Sep 25, 2024 at 6:38 PM Thiago Milczarek Sayão
> <thiago.sayao at gmail.com> wrote:
>
> Johan,
>
> Trust Martin, as I know nothing about Windows :)
> Sorry for misleading you on the IME subject.
>
> Em qua., 25 de set. de 2024 às 13:24, Martin Fox
> <martin at martinfox.com> escreveu:
>
> Johan,
>
> Thanks for providing all the details. It does sound like a
> bug. I will take a look.
>
> Since this is Windows altering the IME setup probably won’t
> have any effect. On Mac and Linux dead keys are delivered
> through the IME pathway and are presented to JavaFX as
> InputMethod events. On Windows dead keys don’t go through this
> pathway and are presented as KeyEvents.
>
> Martin
>
>> On Sep 25, 2024, at 8:21 AM, Kevin Rushforth
>> <kevin.rushforth at oracle.com> wrote:
>>
>> I would not recommend internal APIs, unless someone wants to
>> build JavaFX to help diagnose it.
>>
>> In any case it sounds like Johan has discovered a bug -- at
>> least on Windows -- in the key handler for dead keys. We
>> should test this on macOS and Linux as well.
>>
>> -- Kevin
>>
>> On 9/25/2024 8:14 AM, Thiago Milczarek Sayão wrote:
>>> Johan,
>>>
>>> It's an internal API, but we can use it for testing purposes
>>> (I'm not sure if there's a public API for that).
>>> SceneHelper.enableInputMethodEvents(scene, false);
>>> IME is used for entering complex characters in some
>>> languages such as Chinese, Korean, Japanese, etc.
>>>
>>> On Linux, setting the keyboard to en_US will also add the
>>> extra space, except if I choose the en_US with dead keys
>>> variation.
>>>
>>> If you try it on notepad, is it the same behaviour? If not,
>>> I think it might be a bug.
>>>
>>> -- Thiago.
>>>
>>>
>>> Em qua., 25 de set. de 2024 às 11:12, Johan Corveleyn
>>> <jcorvel at gmail.com> escreveu:
>>>
>>> Hi Thiago,
>>>
>>> Thank you for your answer. I am experiencing this issue
>>> on Windows
>>> (Windows 10 and 11).
>>>
>>> Now, it dawns on me that:
>>> - I have a QWERTY keyboard (standard US layout).
>>> - I have my keyboard layout setting in Windows
>>> configured to "US
>>> International". That way the keys for ~, ^, ', " become
>>> "dead keys"
>>> (waiting for next keystroke).
>>> - If I change my keyboard layout setting to "US" then I
>>> can't
>>> reproduce anymore because those keystrokes no longer act
>>> like dead
>>> keys (~, ^, ... immediately give that character).
>>>
>>> I don't know how this is handled on Linux or Mac. Do
>>> they also have
>>> something like a "US International" keyboard layout
>>> setting so ^
>>> becomes a dead key? Or does it work differently if I
>>> want to type â or
>>> ë, or a standalone ^?
>>>
>>> I'm not sure what you mean by disabling IME or how to
>>> know that it's
>>> enabled. Can I enable/disable this programmatically in
>>> JavaFX? Or is
>>> this an OS keyboard layout setting (anyway: just having
>>> a standard "US
>>> input" makes this non reproducible because I can no
>>> longer type dead
>>> keys)?
>>>
>>> If you have a keyboard input with dead keys it's super
>>> easy to test
>>> this with a simple program like:
>>> [[[
>>> public class DeadKeysFX extends Application {
>>> @Override
>>> public void start(Stage stage) {
>>> TextField textField = new TextField();
>>> Scene scene = new Scene(textField);
>>> stage.setScene(scene);
>>> stage.show();
>>> }
>>> }
>>> ]]]
>>>
>>> Just type ^+<space> and see whether you get one or two
>>> characters. In
>>> all non-JavaFX programs (including Java Swing) I get a
>>> single '^'. In
>>> JavaFX I get a '^ '.
>>>
>>> --
>>> Johan
>>>
>>> On Tue, Sep 24, 2024 at 5:16 PM Thiago Milczarek Sayão
>>> <thiago.sayao at gmail.com> wrote:
>>> >
>>> > Hi Johan,
>>> >
>>> > It might vary be platform. Which one are you using?
>>> (Windows, Mac, Linux).
>>> >
>>> > Try disabling IME (Input Method Editor) and see it it
>>> works.
>>> >
>>> > - Thiago
>>> >
>>> > Em ter., 24 de set. de 2024 11:51, Johan Corveleyn
>>> <jcorvel at gmail.com> escreveu:
>>> >>
>>> >> Hi,
>>> >>
>>> >> (This is my first post here, hope I'm following the
>>> right path)
>>> >>
>>> >> It seems JavaFX TextFields (and friends) do not
>>> automatically convert
>>> >> <dead key>+<space> into simply <dead key character>.
>>> They make it into
>>> >> <dead key character>+<space>, which is very atypical.
>>> I would consider
>>> >> this behavior a bug, since it is different from any
>>> editor I know (and
>>> >> makes it very hard to enter a dead key character on
>>> its own). We ran
>>> >> into this with Java 8, I also reproduced it with
>>> openjdk 21 + openjfx
>>> >> 23.
>>> >>
>>> >> For instance if in a JavaFX TextField I type a '^'
>>> keystroke, it waits
>>> >> for the next keystroke (which is normal since it's a
>>> dead key,
>>> >> possibly followed by a character on which to put the
>>> '^'). But if I
>>> >> then type <space> I expect a simple '^' to appear.
>>> Instead, in JavaFX,
>>> >> '^ ' appears. This does not happen in Swing, nor in
>>> any editor or
>>> >> shell or ...
>>> >>
>>> >> Background context: a user of our JavaFX application
>>> couldn't
>>> >> authenticate with their password (typed in a
>>> PasswordField). After an
>>> >> awful lot of troubleshooting we found that they used
>>> a '^' in their
>>> >> password. Of course the user didn't notice that after
>>> typing ^+space
>>> >> two dots appeared in the PasswordField. Now that user
>>> knows they have
>>> >> to backspace after typing ^+space ...
>>> >>
>>> >> I suppose inserting a Swing JPasswordField in our
>>> JavaFX app would
>>> >> work around this issue, but ... isn't there a better
>>> solution?
>>> >> Shouldn't this be regarded as a bug?
>>> >>
>>> >> --
>>> >> Johan
>>>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20240926/7ad78228/attachment-0001.htm>
More information about the openjfx-dev
mailing list