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

Input method candidate window not in the right position on Linux

XMLWordPrintable

    • x86_64
    • linux_debian_3.0

      ADDITIONAL SYSTEM INFORMATION :
      Debian 9.6 xfce
      liberica jre-11.0.9.1

      A DESCRIPTION OF THE PROBLEM :
      I am using the input method fcitx on linux to input Chinese. The candidate window is at the lower-left to the window. The correct behavior should be following the caret.
      This also happens on Windows 10 but not on Windows 7. I solved the problem on Windows 10 by using another input method: https://pinyin.sogou.com/zhihui/

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      Try to input Chinese in any input control.

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      A candidate window appears near the caret
      ACTUAL -
      A candidate window appears below the window

      ---------- BEGIN SOURCE ----------
      mport javafx.application.Application;
      import javafx.geometry.Insets;
      import javafx.stage.Stage;
      import javafx.scene.Group;
      import javafx.scene.Scene;
      import javafx.scene.control.Label;
      import javafx.scene.control.TextArea;
      import javafx.scene.layout.GridPane;


      public class Test extends Application {
              @Override
              public void start(Stage primaryStage) {
                      try {
                               Scene scene = new Scene(new Group(), 450, 250);

                                  TextArea notification = new TextArea ();
                                  notification.setText("Label");

                                  notification.clear();

                                  GridPane grid = new GridPane();
                                  grid.setVgap(4);
                                  grid.setHgap(10);
                                  grid.setPadding(new Insets(5, 5, 5, 5));
                                  grid.add(new Label("To: "), 0, 0);
                                  grid.add(notification, 1, 0);

                                  Group root = (Group) scene.getRoot();
                                  root.getChildren().add(grid);
                                  primaryStage.setScene(scene);
                                  primaryStage.show();
                      } catch(Exception e) {
                              e.printStackTrace();
                      }
              }

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

            pnarayanaswa Praveen Narayanaswamy
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: