From 286ce15146eb069039a48f11ceecfd35c5a644ea Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Wed, 2 Jul 2025 20:08:55 +0200 Subject: [PATCH] ToggleButton: styling `selectedForeground` did not work if `foreground` is also styled (issue #1017) --- CHANGELOG.md | 2 ++ .../src/main/java/com/formdev/flatlaf/ui/FlatButtonUI.java | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f520d8db..782b3e8f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ FlatLaf Change Log ## 3.6.1-SNAPSHOT - Extras: Support JSVG 2.0.0. Minimum JSVG version is now 1.6.0. (issue #997) +- ToggleButton: Styling `selectedForeground` did not work if `foreground` is + also styled. (issue #1017) - JideSplitButton: Fixed updating popup when switching theme. (issue #1000) - IntelliJ Themes: Fixed logging false errors when loading 3rd party `.theme.json` files. (issue #990) 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 52379236..a2949b5b 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 @@ -381,6 +381,12 @@ public class FlatButtonUI return ((FlatHelpButtonIcon)helpButtonIcon).applyStyleProperty( key, value ); } + // update internal values; otherwise isCustomBackground() and isCustomForeground() would return wrong results + switch( key ) { + case "background": background = (Color) value; break; + case "foreground": foreground = (Color) value; break; + } + if( "iconTextGap".equals( key ) && value instanceof Integer ) value = UIScale.scale( (Integer) value );