From 49a574a8d7bcbac1cd4916bd2fe841c51c5bab2d Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Tue, 8 Oct 2019 23:41:51 +0200 Subject: [PATCH] macOS: use native screen menu bar if system property `apple.laf.useScreenMenuBar` is `true` --- CHANGELOG.md | 6 ++++++ .../src/main/java/com/formdev/flatlaf/FlatLaf.java | 8 ++++++++ 2 files changed, 14 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 84186bcc..61e31583 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ FlatLaf Change Log ================== +## Unreleased + +- macOS: Use native screen menu bar if system property + `apple.laf.useScreenMenuBar` is `true`. + + ## 0.11 - Changed Maven groupId to `com.formdev` and artifactId to `flatlaf`. diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatLaf.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatLaf.java index ed81dcbc..0e5ff962 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatLaf.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatLaf.java @@ -157,9 +157,17 @@ public abstract class FlatLaf defaults.put( "Spinner.disabledBackground", control ); defaults.put( "Spinner.disabledForeground", control ); + // remember MenuBarUI from Mac Aqua LaF if Mac screen menubar is enabled + boolean useScreenMenuBar = SystemInfo.IS_MAC && "true".equals( System.getProperty( "apple.laf.useScreenMenuBar" ) ); + Object aquaMenuBarUI = useScreenMenuBar ? defaults.get( "MenuBarUI" ) : null; + initFonts( defaults ); loadDefaultsFromProperties( defaults ); + // use Aqua MenuBarUI if Mac screen menubar is enabled + if( useScreenMenuBar ) + defaults.put( "MenuBarUI", aquaMenuBarUI ); + return defaults; }