<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Hi Andy,</p>
    <p>I don't think these really qualify as a good enough reason to
      expose an InputMap API by themselves.</p>
    <p>The first comment sounds like an X/Y problem, where the user
      wants to achieve X (remove unwanted behavior) and thinks Y
      (exposing InputMap) is the solution -- certainly that is currently
      the only solution (hack your way with reflection to get at the
      input map), but there are other solutions as well to solve X aside
      from doing Y.  As we've already discussed, part of the reason why
      it is so hard in FX to remove unwanted behavior (X) is that
      Behavior event handling can't be overridden reliably.  Event
      filters may be an (unsatisfactory) solution that the user wasn't
      even aware of. If the user wanted to also respond to the events
      for a different purpose, then prioritized event handlers or having
      behaviors only act on unconsumed events would be a viable
      alternative.<br>
    </p>
    <p>The second comment does not give a problem statement at all, so
      it is hard to count that as an endorsement to opening up InputMap.<br>
    </p>
    <p>The third comment seems to have an entirely different problem,
      how to turn a selected text (which can no doubt consist of styled
      parts, perhaps inline images, etc) into something suitable to put
      on the clipboard (and perhaps vice versa as well). That seems like
      a problem that the Control should solve, and at most has a very
      thin connection with InputMap that such functions should be called
      when cut/copy/paste shortcuts are pressed...</p>
    <p>Perhaps I am not seeing something here?<br>
    </p>
    <p>--John<br>
    </p>
    <div class="moz-cite-prefix">On 16/11/2023 00:44, Andy Goryachev
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:DM5PR1001MB2172E2BE05FB0CD48D007A07E5B1A@DM5PR1001MB2172.namprd10.prod.outlook.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <meta name="Generator" content="Microsoft Word 15 (filtered
        medium)">
      <style>@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}@font-face
        {font-family:"Iosevka Fixed SS16";
        panose-1:2 0 5 9 3 0 0 0 0 4;}@font-face
        {font-family:"Times New Roman \(Body CS\)";
        panose-1:2 11 6 4 2 2 2 2 2 4;}@font-face
        {font-family:"Helvetica Neue";
        panose-1:2 0 5 3 0 0 0 2 0 4;}@font-face
        {font-family:"Segoe UI";
        panose-1:2 11 5 2 4 2 4 2 2 3;}p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:10.0pt;
        font-family:"Calibri",sans-serif;}a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Iosevka Fixed SS16";
        color:windowtext;}p.p1, li.p1, div.p1
        {mso-style-name:p1;
        margin:0in;
        font-size:10.0pt;
        font-family:"Helvetica Neue";}.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        mso-ligatures:none;}div.WordSection1
        {page:WordSection1;}ol
        {margin-bottom:0in;}ul
        {margin-bottom:0in;}</style>
      <div class="WordSection1">
        <p class="MsoNormal"><span
            style="font-size:11.0pt;font-family:"Iosevka Fixed
            SS16"">Dear colleagues:<o:p></o:p></span></p>
        <p class="MsoNormal"><span
            style="font-size:11.0pt;font-family:"Iosevka Fixed
            SS16""><o:p> </o:p></span></p>
        <p class="MsoNormal"><span
            style="font-size:11.0pt;font-family:"Iosevka Fixed
            SS16"">I wanted to share some of the feedback we
            received which might be relevant to the input map / behavior
            discussion (and sorry for not sending it earlier).  Email
            addresses in DM are redacted (though some of the responses
            might be from this mailing list anyway).<o:p></o:p></span></p>
        <p class="MsoNormal"><span
            style="font-size:11.0pt;font-family:"Iosevka Fixed
            SS16""><o:p> </o:p></span></p>
        <p class="MsoNormal"><span
            style="font-size:11.0pt;font-family:"Iosevka Fixed
            SS16""><o:p> </o:p></span></p>
        <p class="MsoNormal"><span
            style="font-size:11.0pt;font-family:"Iosevka Fixed
            SS16""><o:p> </o:p></span></p>
        <p class="MsoNormal"><span
            style="font-size:11.0pt;font-family:"Iosevka Fixed
            SS16"">Robert REDACTED REDACTED @gmail.com<o:p></o:p></span></p>
        <p class="MsoNormal"><span
            style="font-size:11.0pt;font-family:"Iosevka Fixed
            SS16"">Very much appreciated from my side.<o:p></o:p></span></p>
        <p class="MsoNormal"><span
            style="font-size:11.0pt;font-family:"Iosevka Fixed
            SS16"">I can still remember hacking my way into the the
            InputMap of some controls to change unwanted behaviour.<o:p></o:p></span></p>
        <p class="MsoNormal"><span
            style="font-size:11.0pt;font-family:"Iosevka Fixed
            SS16"">Generally speaking: Making JavaFX more open is
            (for me) more important than keeping it 100% backwards
            compatible / super stable.<o:p></o:p></span></p>
        <p class="p1">...<o:p></o:p></p>
        <p class="p1"><o:p> </o:p></p>
        <p class="p1"><o:p> </o:p></p>
        <p class="p1">Pedro REDACTED REDACTED @gmail.com<o:p></o:p></p>
        <p class="p1">Yes Input Map would be a welcome addition.<o:p></o:p></p>
        <p class="p1">...<o:p></o:p></p>
        <p class="MsoNormal"><span
            style="font-size:11.0pt;font-family:"Iosevka Fixed
            SS16""><o:p> </o:p></span></p>
        <div id="mail-editor-reference-message-container">
          <div>
            <div>
              <p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
              <p class="MsoNormal"><span
                  style="font-size:11.0pt;font-family:"Iosevka
                  Fixed SS16""><o:p> </o:p></span></p>
              <p class="MsoNormal"><span
                  style="font-size:11.0pt;font-family:"Iosevka
                  Fixed SS16"">Buried in<o:p></o:p></span></p>
              <p class="MsoNormal"><span
                  style="font-size:11.0pt;font-family:"Iosevka
                  Fixed SS16""><a
href="https://github.com/FXMisc/RichTextFX/issues/1167#issuecomment-1435450535"
                    moz-do-not-send="true" class="moz-txt-link-freetext">https://github.com/FXMisc/RichTextFX/issues/1167#issuecomment-1435450535</a><o:p></o:p></span></p>
              <ul style="margin-top:0in" type="disc">
                <li class="MsoNormal"
style="color:#1F2328;margin-top:3.0pt;mso-margin-bottom-alt:auto;mso-list:l0
                  level1 lfo1;background:white">
                  <span style="font-size:10.5pt;font-family:"Segoe
                    UI",sans-serif">There is no way in TextFlow to
                    provide key/action mappings. This becomes a complex
                    area for rich text, for example turning a number of
                    selected Nodes into something suitable for
                    cut/copy/paste is not straight forward.<o:p></o:p></span></li>
              </ul>
              <p class="MsoNormal"><span
                  style="font-size:11.0pt;font-family:"Iosevka
                  Fixed SS16""><o:p> </o:p></span></p>
              <p class="MsoNormal"><span
                  style="font-size:11.0pt;font-family:"Iosevka
                  Fixed SS16""><o:p> </o:p></span></p>
              <p class="MsoNormal"><span
                  style="font-size:11.0pt;font-family:"Iosevka
                  Fixed SS16"">-andy<o:p></o:p></span></p>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
  </body>
</html>