Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8091012

[Text] No way to distinguish between a hit to the last character and a hit beyond the end of text

    XMLWordPrintable

    Details

    • Type: Enhancement
    • Status: Open
    • Priority: P4
    • Resolution: Unresolved
    • Affects Version/s: 8u20
    • Fix Version/s: tbd
    • Component/s: javafx
    • Labels:

      Description

      When hitting a Text node, there is no way to distinguish between a hit to the trailing edge of the last character and a hit beyond the end of text. Both return a HitInfo

          charIndex: n-1, isLeading: false

      where n is the length of the text. The code to showcase the hit beyond the end of text is below.
      For a hit beyond the end of text, I would suggest to return a HitInfo

          charIndex: n, isLeading: true

      instead. This resolves to the same insertion index, but provides a way to tell apart the two cases.

      Note that making this change also resolves RT-37801.

      I realize that impl_* methods are not public API, but I'm using them in RichTextFX [1] anyway because there's no public API for this functionality. If you are planning/willing to expose more public API on Text/TextFlow, I will be happy to summarize what private API is currently used in RichTextFX.


      import javafx.geometry.Point2D;
      import javafx.scene.text.Text;

      import com.sun.javafx.scene.text.HitInfo;

      public class HitEndOfText {

          public static void main(String[] args) {
              Text text = new Text("foo");
              HitInfo hit = text.impl_hitTestChar(new Point2D(9999, 1));
              System.out.println(hit);
              // prints: charIndex: 2, isLeading: false
              // expected: charIndex: 3, isLeading: true
          }

      }

      [1] https://github.com/TomasMikula/RichTextFX

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              Unassigned Unassigned
              Reporter:
              tmikula Tomas Mikula
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Dates

                Created:
                Updated:
                Imported: