From 0a63990d21b1a9a71ae5e6624f3c2bb179031067 Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Wed, 31 Mar 2021 22:28:43 +0200 Subject: [PATCH] Button and ToggleButton: do not paint background of disabled (and unselected) toolBar buttons (issue #292; regression since fixing #112) --- CHANGELOG.md | 2 ++ .../main/java/com/formdev/flatlaf/ui/FlatButtonUI.java | 8 +++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a14f29bb..6779f5b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,8 @@ FlatLaf Change Log - Fixed crash when running in Webswing. (issue #290) - Native window decorations: Removed superfluous pixel-line at top of screen when window is maximized. (issue #296) +- Button and ToggleButton: Do not paint background of disabled (and unselected) + toolBar buttons. (issue #292; regression since fixing #112) ## 1.1.1 diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatButtonUI.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatButtonUI.java index 5aba716c..0428c990 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatButtonUI.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatButtonUI.java @@ -388,10 +388,12 @@ public class FlatButtonUI } protected Color getBackground( JComponent c ) { + boolean toolBarButton = isToolBarButton( c ); + + // selected state if( ((AbstractButton)c).isSelected() ) { // in toolbar use same colors for disabled and enabled because // we assume that toolbar icon is shown disabled - boolean toolBarButton = isToolBarButton( c ); return buttonStateColor( c, toolBarButton ? toolbarSelectedBackground : selectedBackground, toolBarButton ? toolbarSelectedBackground : disabledSelectedBackground, @@ -400,10 +402,10 @@ public class FlatButtonUI } if( !c.isEnabled() ) - return disabledBackground; + return toolBarButton ? null : disabledBackground; // toolbar button - if( isToolBarButton( c ) ) { + if( toolBarButton ) { ButtonModel model = ((AbstractButton)c).getModel(); if( model.isPressed() ) return toolbarPressedBackground;