< prev index next >

modules/javafx.controls/src/main/java/javafx/scene/control/skin/MenuBarSkin.java

Print this page

 849 
 850         if (Toolkit.getToolkit().getSystemMenu().isSupported()) {
 851             final Scene scene = getSkinnable().getScene();
 852             if (scene != null) {
 853                 // RT-36554 - make sure system menu is updated when this MenuBar's scene changes.
 854                 if (sceneChangeListener == null) {
 855                     sceneChangeListener = (observable, oldValue, newValue) -> {
 856 
 857                         if (oldValue != null) {
 858                             if (oldValue.getWindow() instanceof Stage) {
 859                                 final Stage stage = (Stage) oldValue.getWindow();
 860                                 final MenuBarSkin curMBSkin = getMenuBarSkin(stage);
 861                                 if (curMBSkin == MenuBarSkin.this) {
 862                                     curMBSkin.wrappedMenus = null;
 863                                     systemMenuMap.remove(stage);
 864                                     if (currentMenuBarStage == stage) {
 865                                         currentMenuBarStage = null;
 866                                         setSystemMenu(stage);
 867                                     }
 868                                 } else {
 869                                     if (curMBSkin != null && curMBSkin.getSkinnable() != null &&

 870                                             curMBSkin.getSkinnable().isUseSystemMenuBar()) {
 871                                         curMBSkin.getSkinnable().setUseSystemMenuBar(false);
 872                                     }
 873                                 }
 874                             }
 875                         }
 876 
 877                         if (newValue != null) {
 878                             if (getSkinnable().isUseSystemMenuBar() && !menusContainCustomMenuItem()) {
 879                                 if (newValue.getWindow() instanceof Stage) {
 880                                     final Stage stage = (Stage) newValue.getWindow();
 881                                     if (systemMenuMap == null) {
 882                                         initSystemMenuBar();
 883                                     }
 884                                     wrappedMenus = new ArrayList<>();
 885                                     systemMenuMap.put(stage, new WeakReference<>(this));
 886                                     for (Menu menu : getSkinnable().getMenus()) {
 887                                         wrappedMenus.add(GlobalMenuAdapter.adapt(menu));
 888                                     }
 889                                     currentMenuBarStage = null;

 849 
 850         if (Toolkit.getToolkit().getSystemMenu().isSupported()) {
 851             final Scene scene = getSkinnable().getScene();
 852             if (scene != null) {
 853                 // RT-36554 - make sure system menu is updated when this MenuBar's scene changes.
 854                 if (sceneChangeListener == null) {
 855                     sceneChangeListener = (observable, oldValue, newValue) -> {
 856 
 857                         if (oldValue != null) {
 858                             if (oldValue.getWindow() instanceof Stage) {
 859                                 final Stage stage = (Stage) oldValue.getWindow();
 860                                 final MenuBarSkin curMBSkin = getMenuBarSkin(stage);
 861                                 if (curMBSkin == MenuBarSkin.this) {
 862                                     curMBSkin.wrappedMenus = null;
 863                                     systemMenuMap.remove(stage);
 864                                     if (currentMenuBarStage == stage) {
 865                                         currentMenuBarStage = null;
 866                                         setSystemMenu(stage);
 867                                     }
 868                                 } else {
 869                                     if (getSkinnable().isUseSystemMenuBar() &&
 870                                             curMBSkin != null && curMBSkin.getSkinnable() != null &&
 871                                             curMBSkin.getSkinnable().isUseSystemMenuBar()) {
 872                                         curMBSkin.getSkinnable().setUseSystemMenuBar(false);
 873                                     }
 874                                 }
 875                             }
 876                         }
 877 
 878                         if (newValue != null) {
 879                             if (getSkinnable().isUseSystemMenuBar() && !menusContainCustomMenuItem()) {
 880                                 if (newValue.getWindow() instanceof Stage) {
 881                                     final Stage stage = (Stage) newValue.getWindow();
 882                                     if (systemMenuMap == null) {
 883                                         initSystemMenuBar();
 884                                     }
 885                                     wrappedMenus = new ArrayList<>();
 886                                     systemMenuMap.put(stage, new WeakReference<>(this));
 887                                     for (Menu menu : getSkinnable().getMenus()) {
 888                                         wrappedMenus.add(GlobalMenuAdapter.adapt(menu));
 889                                     }
 890                                     currentMenuBarStage = null;
< prev index next >