diff options
author | pchelko <none@none> | 2014-07-30 16:11:06 +0400 |
---|---|---|
committer | pchelko <none@none> | 2014-07-30 16:11:06 +0400 |
commit | 9a9a3ce6d6d9dc53193768c691415bacce974f9f (patch) | |
tree | aaa6e10e76155a0066c893e0afe2cd1fc7973cfb /src/macosx/classes/com | |
parent | a8e488e8a32ac235079e117e9374221deda7ac87 (diff) |
8048549: [macosx] Disable usage of system menu bar if AWT is embedded in FX
Reviewed-by: serb, anthony
Diffstat (limited to 'src/macosx/classes/com')
-rw-r--r-- | src/macosx/classes/com/apple/laf/AquaMenuBarUI.java | 39 |
1 files changed, 17 insertions, 22 deletions
diff --git a/src/macosx/classes/com/apple/laf/AquaMenuBarUI.java b/src/macosx/classes/com/apple/laf/AquaMenuBarUI.java index c884e6d19..36e703e9f 100644 --- a/src/macosx/classes/com/apple/laf/AquaMenuBarUI.java +++ b/src/macosx/classes/com/apple/laf/AquaMenuBarUI.java @@ -26,11 +26,14 @@ package com.apple.laf; import java.awt.*; +import java.security.AccessController; import javax.swing.*; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicMenuBarUI; +import sun.lwawt.macosx.LWCToolkit; +import sun.security.action.GetBooleanAction; import sun.security.action.GetPropertyAction; // MenuBar implementation for Mac L&F @@ -131,28 +134,20 @@ public class AquaMenuBarUI extends BasicMenuBarUI implements ScreenMenuBarProvid ScreenMenuBar fScreenMenuBar; boolean useScreenMenuBar = getScreenMenuBarProperty(); - private static String getPrivSysProp(final String propName) { - return java.security.AccessController.doPrivileged(new GetPropertyAction(propName)); - } - static boolean getScreenMenuBarProperty() { - final String props[] = new String[]{""}; - - boolean useScreenMenuBar = false; - try { - props[0] = getPrivSysProp(AquaLookAndFeel.sPropertyPrefix + "useScreenMenuBar"); - - if (props[0] != null && props[0].equals("true")) useScreenMenuBar = true; - else { - props[0] = getPrivSysProp(AquaLookAndFeel.sOldPropertyPrefix + "useScreenMenuBar"); - - if (props[0] != null && props[0].equals("true")) { - System.err.println(AquaLookAndFeel.sOldPropertyPrefix + "useScreenMenuBar has been deprecated. Please switch to " + AquaLookAndFeel.sPropertyPrefix + "useScreenMenuBar"); - useScreenMenuBar = true; - } - } - } catch(final Throwable t) { }; - - return useScreenMenuBar; + // Do not allow AWT to set the screen menu bar if it's embedded in another UI toolkit + if (LWCToolkit.isEmbedded()) return false; + if (AccessController.doPrivileged( + new GetBooleanAction(AquaLookAndFeel.sPropertyPrefix + "useScreenMenuBar"))) { + return true; + } + if (AccessController.doPrivileged( + new GetBooleanAction(AquaLookAndFeel.sOldPropertyPrefix + "useScreenMenuBar"))) { + System.err.println(AquaLookAndFeel.sOldPropertyPrefix + + "useScreenMenuBar has been deprecated. Please switch to " + + AquaLookAndFeel.sPropertyPrefix + "useScreenMenuBar"); + return true; + } + return false; } } |