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

node's x pivot used for mirror translation is wrong

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P2
    • Resolution: Fixed
    • Affects Version/s: 8
    • Fix Version/s: 8
    • Component/s: javafx
    • Labels:

      Description

      See the test case

      import javafx.application.*;
      import javafx.geometry.*;
      import javafx.scene.*;
      import javafx.scene.layout.*;
      import javafx.scene.text.*;
      import javafx.stage.*;

      public class Hebrew extends Application {

          private static String LONG_HEBREW = "\u05E1\u05D9\u05D5\u05D5\u05D2 \u05D4\u05DB\u05EA\u05D1 \u05D4\u05E2\u05D1\u05E8\u05D9\n\u05D4\u05DB\u05EA\u05D1 \u05D4\u05E2\u05D1\u05E8\u05D9 \u05D4\u05D5\u05D0 \u05D0\u05D1\u05D2\'\u05D3 \u05D0\u05D5 \u05D0\u05DC\u05E4\u05D1\u05D9\u05EA \u05E2\u05D9\u05E6\u05D5\u05E8\u05D9: \u05DB\u05DC \u05D0\u05D5\u05EA \u05D1\u05D5 \u05DE\u05D9\u05D9\u05E6\u05D2\u05EA \u05E2\u05D9\u05E6\u05D5\u05E8, \u05DC\u05E2\u05EA\u05D9\u05DD \u05D9\u05D5\u05EA\u05E8 \u05DE\u05E2\u05D9\u05E6\u05D5\u05E8 \u05D0\u05D7\u05D3, \u05D5\u05E7\u05D1\u05D5\u05E6\u05EA \u05D0\u05D5\u05EA\u05D9\u05D5\u05EA \u05E7\u05D8\u05E0\u05D4 \u05D4\u05E7\u05E8\u05D5\u05D9\u05D5\u05EA \u05D0\u05D9\u05DE\u05D5\u05EA \u05D4\u05E7\u05E8\u05D9\u05D0\u05D4 \u05E2\u05E9\u05D5\u05D9\u05D5\u05EA \u05DC\u05D9\u05D9\u05E6\u05D2 \u05D2\u05DD \u05EA\u05E0\u05D5\u05E2\u05D5\u05EA. \u05D9\u05D9\u05E6\u05D5\u05D2 \u05E9\u05DC\u05DD \u05D5\u05D7\u05D3 \u05DE\u05E9\u05DE\u05E2\u05D9 \u05E9\u05DC \u05D4\u05EA\u05E0\u05D5\u05E2\u05D5\u05EA \u05D5\u05D4\u05E2\u05D9\u05E6\u05D5\u05E8\u05D9\u05DD \u05DE\u05EA\u05D0\u05E4\u05E9\u05E8 \u05E8\u05E7 \u05D1\u05E2\u05D6\u05E8\u05EA \u05D4\u05E0\u05D9\u05E7\u05D5\u05D3, \u05D4\u05D5\u05D0 \u05D0\u05D5\u05E1\u05E3 \u05D4\u05E1\u05D9\u05DE\u05E0\u05D9\u05DD \u05D4\u05D3\u05D9\u05D0\u05E7\u05E8\u05D9\u05D8\u05D9\u05D9\u05DD \u05D4\u05DE\u05EA\u05D5\u05D5\u05E1\u05E4\u05D9\u05DD \u05DC\u05D0\u05D5\u05EA\u05D9\u05D5\u05EA \u05D4\u05D0\u05DC\u05E4\u05D1\u05D9\u05EA \u05D4\u05E2\u05D1\u05E8\u05D9 (\u05DC\u05D4\u05D1\u05D3\u05D9\u05DC \u05DE\u05D4\u05DB\u05EA\u05D1 \u05D4\u05DC\u05D8\u05D9\u05E0\u05D9 \u05DC\u05DE\u05E9\u05DC, \u05E9\u05D4\u05D5\u05D0 \u05DB\u05EA\u05D1 \u05E2\u05D9\u05E6\u05D5\u05E8\u05D9 \u05D1\u05E2\u05DC \u05D7\u05DE\u05E9 \u05D0\u05D5\u05EA\u05D9\u05D5\u05EA \u05EA\u05E0\u05D5\u05E2\u05D4).\n\u05D4\u05D9\u05E1\u05D8\u05D5\u05E8\u05D9\u05D4 \u05D5\u05D4\u05EA\u05E4\u05EA\u05D7\u05D5\u05EA \u05E9\u05DC \u05D4\u05D0\u05DC\u05E4\u05D1\u05D9\u05EA \u05D4\u05E2\u05D1\u05E8\u05D9\n\u05D4\u05EA\u05E4\u05EA\u05D7\u05D5\u05EA \u05D4\u05D0\u05DC\u05E4\u05D1\u05D9\u05EA\n\u05E4\u05E8\u05E7 \u05D6\u05D4 \u05DC\u05D5\u05E7\u05D4 \u05D1\u05D7\u05E1\u05E8. \u05D0\u05E0\u05D0 \u05EA\u05E8\u05DE\u05D5 \u05DC\u05D5\u05D5\u05D9\u05E7\u05D9\u05E4\u05D3\u05D9\u05D4 \u05D5\u05D4\u05E9\u05DC\u05D9\u05DE\u05D5 \u05D0\u05D5\u05EA\u05D5. \u05D9\u05D9\u05EA\u05DB\u05DF \u05E9\u05EA\u05DE\u05E6\u05D0\u05D5 \u05E4\u05D9\u05E8\u05D5\u05D8 \u05D1\u05D3\u05E3 \u05D4\u05E9\u05D9\u05D7\u05D4.\n\u05DE\u05D0\u05DC\u05E4\u05D1\u05D9\u05EA \u05DB\u05E0\u05E2\u05E0\u05D9 \u05DC\u05D0\u05DC\u05E4\u05D1\u05D9\u05EA \u05E2\u05D1\u05E8\u05D9\n\u05D4\u05DB\u05EA\u05D1 \u05D4\u05E2\u05D1\u05E8\u05D9 \u05D4\u05E7\u05D3\u05D5\u05DD \u05E9\u05E9\u05D9\u05DE\u05E9 \u05E2\u05D3 \u05DC\u05EA\u05E7\u05D5\u05E4\u05EA \u05D1\u05D9\u05EA \u05E9\u05E0\u05D9, \u05D4\u05D5\u05D0 \u05E0\u05D5\u05E1\u05D7 \u05DE\u05E7\u05D5\u05DE\u05D9 \u05E9\u05DC \u05D4\u05D0\u05DC\u05E4\u05D1\u05D9\u05EA \u05D4\u05E4\u05D9\u05E0\u05D9\u05E7\u05D9, \u05E9\u05D1\u05EA\u05D5\u05E8\u05D5 \u05D4\u05EA\u05E4\u05EA\u05D7 \u05DE\u05D4\u05D0\u05DC\u05E4\u05D1\u05D9\u05EA \u05D4\u05E4\u05E8\u05D5\u05D8\u05D5-\u05DB\u05E0\u05E2\u05E0\u05D9. \u05D1\u05DB\u05EA\u05D1 \u05D4\u05E4\u05E8\u05D5\u05D8\u05D5-\u05DB\u05E0\u05E2\u05E0\u05D9 \u05DB\u05DC \u05E6\u05D9\u05D5\u05E8 \u05DE\u05D9\u05D9\u05E6\u05D2 \u05D0\u05EA \u05D4\u05E2\u05D9\u05E6\u05D5\u05E8 \u05E9\u05D1\u05EA\u05D7\u05D9\u05DC\u05EA \u05D4\u05DE\u05D9\u05DC\u05D4 \u05D4\u05DE\u05EA\u05D5\u05D0\u05E8\u05EA \u05D1\u05E6\u05D9\u05D5\u05E8 (\u05D4\u05E2\u05E7\u05E8\u05D5\u05DF \u05D4\u05D0\u05E7\u05E8\u05D5\u05E4\u05D5\u05E0\u05D9). \u05DB\u05DA \u05DC\u05DE\u05E9\u05DC \u05E0\u05D1\u05D7\u05E8 \u05E6\u05D9\u05D5\u05E8 \u05E9\u05DC \u05E8\u05D0\u05E9 \u05DC\u05D9\u05D9\u05E6\u05D2 \u05D0\u05EA \u05D4\u05E6\u05DC\u05D9\u05DC \"\u05E8\"; \u05E6\u05D9\u05D5\u05E8 \u05E9\u05DC \u05E2\u05D9\u05DF \u05DC\u05E6\u05DC\u05D9\u05DC \"\u05E2\", \u05D5\u05DB\u05DA \u05D4\u05DC\u05D0\u05D4. \u05DC\u05EA\u05E0\u05D5\u05E2\u05D5\u05EA \u05DC\u05D0 \u05D9\u05D5\u05D7\u05D3\u05D5 \u05E1\u05D9\u05DE\u05E0\u05D9\u05DD.\n\u05D4\u05DB\u05EA\u05D1 \u05D4\u05DB\u05E0\u05E2\u05E0\u05D9 \u05D4\u05E7\u05D3\u05D5\u05DD \u05D4\u05DC\u05DA \u05D5\u05D4\u05EA\u05E4\u05E9\u05D8 \u05D5\u05E1\u05D9\u05DE\u05E0\u05D9\u05D5 \u05D4\u05D9\u05D5 \u05DE\u05D5\u05DB\u05E8\u05D9\u05DD \u05DB\u05DC \u05DB\u05DA, \u05E2\u05D3 \u05DB\u05D9 \u05D4\u05DE\u05E9\u05EA\u05DE\u05E9\u05D9\u05DD \u05D1\u05D5 \u05D4\u05EA\u05D7\u05D9\u05DC\u05D5 \"\u05DC\u05D4\u05EA\u05E2\u05E6\u05DC\" \u05D1\u05D4\u05E9\u05DC\u05DE\u05EA \u05D4\u05E6\u05D9\u05D5\u05E8\u05D9\u05DD, \u05D5\u05D4\u05E0\u05D9\u05D7\u05D5 \u05DB\u05D9 \u05D4\u05E7\u05D5\u05E8\u05D0 \u05D9\u05D1\u05D9\u05DF \u05D2\u05DD \u05DE\u05EA\u05D5\u05DA \u05E9\u05E8\u05D8\u05D5\u05D8\u05D9\u05DD \u05E1\u05DB\u05DE\u05EA\u05D9\u05D9\u05DD \u05D1\u05D0\u05D9\u05D6\u05D5 \u05D0\u05D5\u05EA \u05DE\u05D3\u05D5\u05D1\u05E8. \u05DB\u05DA, \u05DC\u05DE\u05E9\u05DC, \u05D4\u05E4\u05DA \u05D4\u05E8\u05D0\u05E9 \u05DC\u05DE\u05E9\u05D5\u05DC\u05E9 \u05E2\u05DD \u05E6\u05D5\u05D5\u05D0\u05E8; \u05DB\u05E3 \u05D4\u05D9\u05D3 \u05DE\u05DC\u05D0\u05EA \u05D4\u05D0\u05E6\u05D1\u05E2\u05D5\u05EA \u05D4\u05E4\u05DB\u05D4 \u05DC\u05E9\u05E8\u05D8\u05D5\u05D8 \u05D3\u05DC, \u05D5\u05DE\u05D4\u05D3\u05D2 \u05E0\u05D5\u05EA\u05E8 \u05E8\u05E7 \u05D4\u05D6\u05E0\u05D1. \u05DB\u05E9\u05D4\u05E2\u05D1\u05E8\u05D9\u05DD \u05D0\u05DE\u05E6\u05D5 \u05D0\u05EA \u05D4\u05DB\u05EA\u05D1 \u05D4\u05DB\u05E0\u05E2\u05E0\u05D9 \u05D4\u05DD \u05D4\u05EA\u05E7\u05E9\u05D5 \u05DC\u05D6\u05D4\u05D5\u05EA \u05D7\u05DC\u05E7 \u05DE\u05D4\u05E6\u05D9\u05D5\u05E8\u05D9\u05DD \u05D4\u05DE\u05E7\u05D5\u05E8\u05D9\u05D9\u05DD \u05D5\u05D4\u05E0\u05D9\u05D7\u05D5 \u05DC\u05DE\u05E9\u05DC \u05DB\u05D9 \u05D4\u05E1\u05D9\u05DE\u05DF \u05D4\u05DE\u05EA\u05D0\u05E8 \u05D0\u05EA \u05D4\u05DE\u05D9\u05DC\u05D4 \"\u05D6\u05D4\u05D4\" \u05D4\u05D5\u05D0 \u05DB\u05DC\u05D9 \u05E0\u05E9\u05E7; \u05E9\u05D6\u05E0\u05D1 \u05D4\u05D3\u05D2 \u05D4\u05DE\u05E9\u05D5\u05DC\u05E9 \u05D4\u05D5\u05D0 \u05D3\u05DC\u05EA, \u05D5\u05E9\u05D3\u05D5\u05D5\u05E7\u05D0 \u05D4\u05E0\u05D7\u05E9 \u05D4\u05D5\u05D0 \u05D3\u05D2. \u05DB\u05DA \u05E0\u05D5\u05DC\u05D3\u05D5 \u05E9\u05DE\u05D5\u05EA\u05D9\u05D4\u05DD \u05D4\u05E2\u05D1\u05E8\u05D9\u05D9\u05DD \u05E9\u05DC \u05D4\u05D0\u05D5\u05EA\u05D9\u05D5\u05EA \u05D6\u05D9\"\u05DF, \u05D3\u05DC\"\u05EA \u05D5\u05E0\u05D5\"\u05DF (\u05E0\u05D5\u05DF \u05D4\u05D5\u05D0 \u05D3\u05D2, \u05DB\u05DE\u05D5 \u05D0\u05DE\u05E0\u05D5\u05DF, \u05E9\u05E4\u05DE\u05E0\u05D5\u05DF \u05D5\u05DB\u05D5\').";



          public static void main(String[] args) { launch(args); }

          @Override public void start(Stage stage) {
              VBox rootNode = new VBox(10);
              rootNode.setStyle("-fx-padding: 20;");

              final Text text = new Text();
              text.setText(LONG_HEBREW);
              text.setWrappingWidth(200);

              rootNode.getChildren().add(text);

              Platform.runLater(new Runnable() {
                  public void run() {
                      System.err.println("layoutX="+text.getLayoutX());
                      System.err.println("X in parent=" + text.getBoundsInParent().getMinX());
                  }
              });

              Scene scene = new Scene(rootNode);
              scene.setNodeOrientation(NodeOrientation.RIGHT_TO_LEFT);
              stage.setScene(scene);
              stage.show();
          }
      }


        Attachments

        1. leif.patch
          0.9 kB
          Felipe Heidrich
        2. RT-27533.png
          53 kB
          Felipe Heidrich

          Issue Links

            Activity

              People

              Assignee:
              fheidric Felipe Heidrich (Inactive)
              Reporter:
              fheidric Felipe Heidrich (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:
                Imported: