diff --git a/CHANGELOG.md b/CHANGELOG.md index c7952464..e16e4381 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -33,10 +33,13 @@ FlatLaf Change Log - Fixed background of `boolean` columns when using alternating row colors. (issue #780) - Fixed border arc of components in complex table cell editors. (issue #786) -- TableHeader: No longer temporary replace header cell renderer while painting. - This avoids a `StackOverflowError` in case that custom renderer does this too. - (see [NetBeans issue #6835](https://github.com/apache/netbeans/issues/6835)) - This also improves compatibility with custom table header implementations. +- TableHeader: + - No longer temporary replace header cell renderer while painting. This avoids + a `StackOverflowError` in case that custom renderer does this too. (see + [NetBeans issue #6835](https://github.com/apache/netbeans/issues/6835)) This + also improves compatibility with custom table header implementations. + - Header cell renderer background/foreground colors were not restored after + hover if renderer uses `null` for background/foreground. (PR #790) - TabbedPane: - Avoid unnecessary repainting whole tabbed pane content area when layouting leading/trailing components. diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTableHeaderUI.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTableHeaderUI.java index 14a6e16f..91184b6f 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTableHeaderUI.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTableHeaderUI.java @@ -356,7 +356,7 @@ public class FlatTableHeaderUI JLabel l = (JLabel) c; Color oldBackground = null; Color oldForeground = null; - Boolean oldOpaque = null; + boolean oldOpaque = false; Icon oldIcon = null; int oldHorizontalTextPosition = -1; @@ -415,12 +415,12 @@ public class FlatTableHeaderUI } // restore modified renderer component properties - if( oldBackground != null ) + if( background != null ) { l.setBackground( oldBackground ); - if( oldForeground != null ) - l.setForeground( oldForeground ); - if( oldOpaque != null ) l.setOpaque( oldOpaque ); + } + if( foreground != null ) + l.setForeground( oldForeground ); if( oldIcon != null ) l.setIcon( oldIcon ); if( oldHorizontalTextPosition >= 0 )