From 875637bc6d3ff00a00e35dce12d8ac302465aba2 Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Wed, 29 Apr 2020 14:46:33 +0200 Subject: [PATCH] Menus: support switching "underline" menu selection type at any time without updating UI (issue #49) --- .../java/com/formdev/flatlaf/ui/FlatMenuItemRenderer.java | 3 +-- .../src/main/java/com/formdev/flatlaf/demo/DemoFrame.java | 1 - .../main/java/com/formdev/flatlaf/testing/FlatMenusTest.java | 4 +++- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatMenuItemRenderer.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatMenuItemRenderer.java index 325547da..c5f31ebf 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatMenuItemRenderer.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatMenuItemRenderer.java @@ -55,7 +55,6 @@ public class FlatMenuItemRenderer protected final int textAcceleratorGap; protected final int textArrowGap; - protected final String selectionType = UIManager.getString( "MenuItem.selectionType" ); protected final Color underlineSelectionBackground = UIManager.getColor( "MenuItem.underlineSelectionBackground" ); protected final Color underlineSelectionColor = UIManager.getColor( "MenuItem.underlineSelectionColor" ); protected final int underlineSelectionHeight = UIManager.getInt( "MenuItem.underlineSelectionHeight" ); @@ -340,7 +339,7 @@ debug*/ } private boolean isUnderlineSelection() { - return "underline".equals( selectionType ); + return "underline".equals( UIManager.getString( "MenuItem.selectionType" ) ); } private Icon getIconForPainting() { 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 92ec5ead..a4498c86 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 @@ -61,7 +61,6 @@ class DemoFrame private void underlineMenuSelection() { UIManager.put( "MenuItem.selectionType", underlineMenuSelectionMenuItem.isSelected() ? "underline" : null ); - FlatLaf.updateUI(); } private void fontFamilyChanged( ActionEvent e ) { diff --git a/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatMenusTest.java b/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatMenusTest.java index deeff5d4..1750ef69 100644 --- a/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatMenusTest.java +++ b/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatMenusTest.java @@ -64,7 +64,9 @@ public class FlatMenusTest private void underlineChanged() { UIManager.put( "MenuItem.selectionType", underlineCheckBox.isSelected() ? "underline" : null ); - FlatLaf.updateUI(); + + if( armedCheckBox.isSelected() ) + FlatLaf.updateUI(); } private void showPopupMenuButtonActionPerformed(ActionEvent e) {