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

[macos11] Check mark of System Screen Menubar is not visible when the language set other than English

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: External
    • Icon: P3 P3
    • None
    • jfx16
    • javafx

      ADDITIONAL SYSTEM INFORMATION :
      macOS Big Sur 11.2.3
      OpenJDK 15.0.2
      JavaFX 16

      A DESCRIPTION OF THE PROBLEM :
      When using system screen menubar on macOS and set the language of macOS other than English, for example to German, then the selection mark of the checkbox menu item is not visible anymore.

      It happens using Swing JMenuBar and also using JavaFX MenuBar.

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      Use macOS Big Sur and set macOS system language to other than English, for example to German.
      Open Terminal:
      Start the appended sample program from terminal
      java ScreenMenuBarCheckboxBugSwing
      java -p javafx-sdk-16/lib --add-modules javafx.controls ScreenMenuBarCheckboxBugJavaFX

      Click on "Menu" -> checkmark is missing before "CheckBoxMenuItem" but you can see the empty big gap, indicating that the checkmark should be there

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      The selection mark of a checkbox menu item should be visible in all languages of macOS, for example German.
      ACTUAL -
      The selection mark of a checkbox menu item is only visible in macOS with the language set to English.


      import javafx.application.Application;
      import javafx.scene.Scene;
      import javafx.scene.control.CheckMenuItem;
      import javafx.scene.control.Menu;
      import javafx.scene.control.MenuBar;
      import javafx.stage.Stage;

      public class ScreenMenuBarCheckboxBugJavaFX extends Application {

          //start this class from terminal (when you start this class from IntelliJ, you will not run in this issue)
          public static void main(String[] args) {
              launch(args);
          }

          @Override
          public void start(Stage stage) throws Exception {
              MenuBar menuBar = new MenuBar();
              Menu menu = new Menu("Menu");
              //macOS BigSur 11.2.3 with os language to german, selection mark is missing
              CheckMenuItem checkMenuItem = new CheckMenuItem("CheckMenuItem");
              checkMenuItem.setSelected(true);
              menu.getItems().add(checkMenuItem);
              menuBar.getMenus().add(menu);
              menuBar.setUseSystemMenuBar(true);
              Scene scene = new Scene(menuBar, 200, 400);
              stage.setScene(scene);
              stage.show();
          }
      }
      ---------- END SOURCE ----------

      CUSTOMER SUBMITTED WORKAROUND :
      No workaround is known. Setting the macOS language for German users to English is a not accepted workaround for our customers.

      FREQUENCY : always

            Unassigned Unassigned
            trebari Tejpal Rebari (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: