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

[Text] Add API to count chars in a cluster

    Details

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

      Description

      When Text combines Unicode character clusters into ligatures, etc, the text editing controls will need a way to count the chars in a cluster in order to skip them as a whole, or to delete them.

      This request comes in two parts.

      1. Provide a method in the Text class similar to java.lang.Character.offsetByCodePoints().

      See http://docs.oracle.com/javase/7/docs/api/java/lang/Character.html#offsetByCodePoints%28java.lang.CharSequence,%20int,%20int%29

      This could be:
        public int offsetByCharCluster(int index, int clusterCount);
      where clusterCount is the number of clusters to include after (or before if negative) the index. The clusterCount value will probably not be greater than 1 in most cases, but this is a simple way to also provide the direction.

      Note that the method should include the functionality of offsetByCodePoints() and count surrogate character pairs as clusters as well.

      2. Include cluster offset as part of the HitInfo object returned from a hit test. The method
      HitInfo.getInsertionIndex() should then add that number instead of 1 when leading is false;

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                prr Philip Race
                Reporter:
                leifs Leif Samuelsson (Inactive)
              • Votes:
                0 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Imported: