<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>
      <blockquote type="cite">For some reason mails on the openjfx-dev
        mailinglist coming from <a href="mailto:martin@martinfox.com"
          class="moz-txt-link-freetext">martin@martinfox.com</a> are not
        coming through to me</blockquote>
      <br>
    </p>
    <p>I have the same problem.</p>
    <p>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.<br>
    </p>
    <p>--John<br>
    </p>
    <div class="moz-cite-prefix">On 26/09/2024 10:37, Johan Corveleyn
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAB84uBURAM93Hekg+H7i82=Z54_V3RBvbsYLHaE_myBYJ+DOZg@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div>Thanks, and thank you Martin for filing the issue <a
            href="https://bugs.openjdk.org/browse/JDK-8340982"
            moz-do-not-send="true" class="moz-txt-link-freetext">https://bugs.openjdk.org/browse/JDK-8340982</a>.
          I'll try to create an account on <a href="http://openjdk.org"
            moz-do-not-send="true">openjdk.org</a> to be able to watch
          the issue :-).<br>
        </div>
        <div><br>
        </div>
        <div>Tangentially:<br>
        </div>
        <div>For some reason mails on the openjfx-dev mailinglist coming
          from <a href="mailto:martin@martinfox.com"
            moz-do-not-send="true" class="moz-txt-link-freetext">martin@martinfox.com</a>
          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 <a
href="https://mail.openjdk.org/pipermail/openjfx-dev/2024-September/thread.html"
            moz-do-not-send="true" class="moz-txt-link-freetext">https://mail.openjdk.org/pipermail/openjfx-dev/2024-September/thread.html</a>
          alright, which is where I saw Martin's latest reply about
          filing the issue. It seems mails from <a
            href="mailto:mfox@openjdk.org" moz-do-not-send="true"
            class="moz-txt-link-freetext">mfox@openjdk.org</a> are
          coming through to me, but from <a
            href="mailto:martin@martinfox.com" moz-do-not-send="true"
            class="moz-txt-link-freetext">martin@martinfox.com</a> 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 :-/.</div>
        <div><br>
        </div>
        <div>-- <br>
        </div>
        <div>Johan<br>
        </div>
        <br>
        <div class="gmail_quote">
          <div dir="ltr" class="gmail_attr">On Wed, Sep 25, 2024 at
            6:38 PM Thiago Milczarek Sayão <<a
              href="mailto:thiago.sayao@gmail.com"
              moz-do-not-send="true" class="moz-txt-link-freetext">thiago.sayao@gmail.com</a>>
            wrote:<br>
          </div>
          <blockquote class="gmail_quote"
style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
            <div dir="ltr">
              <div>Johan,</div>
              <div><br>
              </div>
              Trust Martin, as I know nothing about Windows :)
              <div>Sorry for misleading you on the IME subject.</div>
            </div>
            <br>
            <div class="gmail_quote">
              <div dir="ltr" class="gmail_attr">Em qua., 25 de set. de
                2024 às 13:24, Martin Fox <<a
                  href="mailto:martin@martinfox.com" target="_blank"
                  moz-do-not-send="true" class="moz-txt-link-freetext">martin@martinfox.com</a>>
                escreveu:<br>
              </div>
              <blockquote class="gmail_quote"
style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
                <div>
                  <div>Johan,</div>
                  <div><br>
                  </div>
                  <div>Thanks for providing all the details. It does
                    sound like a bug. I will take a look.</div>
                  <div><br>
                  </div>
                  <div>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.</div>
                  <div><br>
                  </div>
                  <div>Martin</div>
                  <div>
                    <div><br>
                      <blockquote type="cite">
                        <div>On Sep 25, 2024, at 8:21 AM, Kevin
                          Rushforth <<a
                            href="mailto:kevin.rushforth@oracle.com"
                            target="_blank" moz-do-not-send="true"
                            class="moz-txt-link-freetext">kevin.rushforth@oracle.com</a>>
                          wrote:</div>
                        <br>
                        <div>
                          <div> I would not recommend internal APIs,
                            unless someone wants to build JavaFX to help
                            diagnose it.<br>
                            <br>
                            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.<br>
                            <br>
                             -- Kevin<br>
                            <br>
                            <div>On 9/25/2024 8:14 AM, Thiago Milczarek
                              Sayão wrote:<br>
                            </div>
                            <blockquote type="cite">
                              <div dir="ltr">Johan,
                                <div><br>
                                </div>
                                <div>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).</div>
                                <div>SceneHelper.enableInputMethodEvents(scene,
                                  false);<br>
                                </div>
                                <div>IME is used for entering complex
                                  characters in some languages such as
                                  Chinese, Korean, Japanese, etc.<br>
                                </div>
                                <div><br>
                                </div>
                                <div>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.</div>
                                <div><br>
                                </div>
                                <div>If you try it on notepad, is it the
                                  same behaviour? If not, I think it
                                  might be a bug.</div>
                                <div><br>
                                </div>
                                <div>-- Thiago.</div>
                                <div><br>
                                </div>
                              </div>
                              <br>
                              <div class="gmail_quote">
                                <div dir="ltr" class="gmail_attr">Em
                                  qua., 25 de set. de 2024 às 11:12,
                                  Johan Corveleyn <<a
                                    href="mailto:jcorvel@gmail.com"
                                    target="_blank"
                                    moz-do-not-send="true"
                                    class="moz-txt-link-freetext">jcorvel@gmail.com</a>>
                                  escreveu:<br>
                                </div>
                                <blockquote class="gmail_quote"
style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi
                                  Thiago,<br>
                                  <br>
                                  Thank you for your answer. I am
                                  experiencing this issue on Windows<br>
                                  (Windows 10 and 11).<br>
                                  <br>
                                  Now, it dawns on me that:<br>
                                  - I have a QWERTY keyboard (standard
                                  US layout).<br>
                                  - I have my keyboard layout setting in
                                  Windows configured to "US<br>
                                  International". That way the keys for
                                  ~, ^, ', " become "dead keys"<br>
                                  (waiting for next keystroke).<br>
                                  - If I change my keyboard layout
                                  setting to "US" then I can't<br>
                                  reproduce anymore because those
                                  keystrokes no longer act like dead<br>
                                  keys (~, ^, ... immediately give that
                                  character).<br>
                                  <br>
                                  I don't know how this is handled on
                                  Linux or Mac. Do they also have<br>
                                  something like a "US International"
                                  keyboard layout setting so ^<br>
                                  becomes a dead key? Or does it work
                                  differently if I want to type â or<br>
                                  ë, or a standalone ^?<br>
                                  <br>
                                  I'm not sure what you mean by
                                  disabling IME or how to know that it's<br>
                                  enabled. Can I enable/disable this
                                  programmatically in JavaFX? Or is<br>
                                  this an OS keyboard layout setting
                                  (anyway: just having a standard "US<br>
                                  input" makes this non reproducible
                                  because I can no longer type dead<br>
                                  keys)?<br>
                                  <br>
                                  If you have a keyboard input with dead
                                  keys it's super easy to test<br>
                                  this with a simple program like:<br>
                                  [[[<br>
                                  public class DeadKeysFX extends
                                  Application {<br>
                                      @Override<br>
                                      public void start(Stage stage) {<br>
                                          TextField textField = new
                                  TextField();<br>
                                          Scene scene = new
                                  Scene(textField);<br>
                                          stage.setScene(scene);<br>
                                          stage.show();<br>
                                      }<br>
                                  }<br>
                                  ]]]<br>
                                  <br>
                                  Just type ^+<space> and see
                                  whether you get one or two characters.
                                  In<br>
                                  all non-JavaFX programs (including
                                  Java Swing) I get a single '^'. In<br>
                                  JavaFX I get a '^ '.<br>
                                  <br>
                                  --<br>
                                  Johan<br>
                                  <br>
                                  On Tue, Sep 24, 2024 at 5:16 PM Thiago
                                  Milczarek Sayão<br>
                                  <<a
                                    href="mailto:thiago.sayao@gmail.com"
                                    target="_blank"
                                    moz-do-not-send="true"
                                    class="moz-txt-link-freetext">thiago.sayao@gmail.com</a>>
                                  wrote:<br>
                                  ><br>
                                  > Hi Johan,<br>
                                  ><br>
                                  > It might vary be platform. Which
                                  one are you using? (Windows, Mac,
                                  Linux).<br>
                                  ><br>
                                  > Try disabling IME (Input Method
                                  Editor) and see it it works.<br>
                                  ><br>
                                  > - Thiago<br>
                                  ><br>
                                  > Em ter., 24 de set. de 2024
                                  11:51, Johan Corveleyn <<a
                                    href="mailto:jcorvel@gmail.com"
                                    target="_blank"
                                    moz-do-not-send="true"
                                    class="moz-txt-link-freetext">jcorvel@gmail.com</a>>
                                  escreveu:<br>
                                  >><br>
                                  >> Hi,<br>
                                  >><br>
                                  >> (This is my first post here,
                                  hope I'm following the right path)<br>
                                  >><br>
                                  >> It seems JavaFX TextFields
                                  (and friends) do not automatically
                                  convert<br>
                                  >> <dead
                                  key>+<space> into simply
                                  <dead key character>. They make
                                  it into<br>
                                  >> <dead key
                                  character>+<space>, which is
                                  very atypical. I would consider<br>
                                  >> this behavior a bug, since it
                                  is different from any editor I know
                                  (and<br>
                                  >> makes it very hard to enter a
                                  dead key character on its own). We ran<br>
                                  >> into this with Java 8, I also
                                  reproduced it with openjdk 21 +
                                  openjfx<br>
                                  >> 23.<br>
                                  >><br>
                                  >> For instance if in a JavaFX
                                  TextField I type a '^' keystroke, it
                                  waits<br>
                                  >> for the next keystroke (which
                                  is normal since it's a dead key,<br>
                                  >> possibly followed by a
                                  character on which to put the '^').
                                  But if I<br>
                                  >> then type <space> I
                                  expect a simple '^' to appear.
                                  Instead, in JavaFX,<br>
                                  >> '^ ' appears. This does not
                                  happen in Swing, nor in any editor or<br>
                                  >> shell or ...<br>
                                  >><br>
                                  >> Background context: a user of
                                  our JavaFX application couldn't<br>
                                  >> authenticate with their
                                  password (typed in a PasswordField).
                                  After an<br>
                                  >> awful lot of troubleshooting
                                  we found that they used a '^' in their<br>
                                  >> password. Of course the user
                                  didn't notice that after typing
                                  ^+space<br>
                                  >> two dots appeared in the
                                  PasswordField. Now that user knows
                                  they have<br>
                                  >> to backspace after typing
                                  ^+space ...<br>
                                  >><br>
                                  >> I suppose inserting a Swing
                                  JPasswordField in our JavaFX app would<br>
                                  >> work around this issue, but
                                  ... isn't there a better solution?<br>
                                  >> Shouldn't this be regarded as
                                  a bug?<br>
                                  >><br>
                                  >> --<br>
                                  >> Johan<br>
                                </blockquote>
                              </div>
                            </blockquote>
                            <br>
                          </div>
                        </div>
                      </blockquote>
                    </div>
                    <br>
                  </div>
                </div>
              </blockquote>
            </div>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
  </body>
</html>