From 620aa8bcee0b0dd8202691de0ac551fce731d5c0 Mon Sep 17 00:00:00 2001 From: Marcel Schramm Date: Wed, 31 Mar 2021 19:54:00 +0200 Subject: [PATCH 1/2] Fix selected states for native window border related menu items The menu items for custom window decorations and embeded menu bar aren't selected anymore if the feature isn't supported. On top of that, there's now a tooltip indicating that these aren't supported. --- .../java/com/formdev/flatlaf/demo/DemoFrame.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/DemoFrame.java b/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/DemoFrame.java index ff3fac17..7fded028 100644 --- a/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/DemoFrame.java +++ b/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/DemoFrame.java @@ -750,8 +750,16 @@ class DemoFrame boolean supportsWindowDecorations = UIManager.getLookAndFeel() .getSupportsWindowDecorations() || FlatNativeWindowBorder.isSupported(); - windowDecorationsCheckBoxMenuItem.setEnabled( supportsWindowDecorations && !JBRCustomDecorations.isSupported() ); - menuBarEmbeddedCheckBoxMenuItem.setEnabled( supportsWindowDecorations ); + if( !supportsWindowDecorations || JBRCustomDecorations.isSupported() ) { + windowDecorationsCheckBoxMenuItem.setEnabled( false ); + windowDecorationsCheckBoxMenuItem.setSelected( false ); + windowDecorationsCheckBoxMenuItem.setToolTipText( "Not supported on your system." ); + } + if( !supportsWindowDecorations ) { + menuBarEmbeddedCheckBoxMenuItem.setEnabled( false ); + menuBarEmbeddedCheckBoxMenuItem.setSelected( false ); + menuBarEmbeddedCheckBoxMenuItem.setToolTipText( "Not supported on your system." ); + } // remove contentPanel bottom insets MigLayout layout = (MigLayout) contentPanel.getLayout(); From d06993d94014d595096fb036c07815cb88566ec0 Mon Sep 17 00:00:00 2001 From: Marcel Schramm Date: Thu, 1 Apr 2021 22:14:31 +0200 Subject: [PATCH 2/2] Add comment explaining why the use of JBR results in not having custom decorations --- .../src/main/java/com/formdev/flatlaf/demo/DemoFrame.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/DemoFrame.java b/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/DemoFrame.java index 7fded028..46d826f6 100644 --- a/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/DemoFrame.java +++ b/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/DemoFrame.java @@ -750,6 +750,9 @@ class DemoFrame boolean supportsWindowDecorations = UIManager.getLookAndFeel() .getSupportsWindowDecorations() || FlatNativeWindowBorder.isSupported(); + + // If the JetBrainsRuntime is used, it forces the use of it's own custom + // window decoration, meaning we can't use our own. if( !supportsWindowDecorations || JBRCustomDecorations.isSupported() ) { windowDecorationsCheckBoxMenuItem.setEnabled( false ); windowDecorationsCheckBoxMenuItem.setSelected( false );