From 6991d6729ef8252216844c4a1b3787d980bdf2fb Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Sun, 8 Dec 2024 23:01:00 +0100 Subject: [PATCH 1/3] Merge PR #931: Fixing NPE when using HTML text on a component with null font (cherry picked from commit 41332de2753728eb5a6d07bd8f2a946065cb41f1) --- CHANGELOG.md | 8 ++++++++ .../src/main/java/com/formdev/flatlaf/ui/FlatHTML.java | 7 ++++--- .../test/java/com/formdev/flatlaf/ui/TestFlatHTML.java | 10 ++++++++++ 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 14a97772..c9ee6322 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,14 @@ FlatLaf Change Log ================== +## 3.5.4-SNAPSHOT + +#### Fixed bugs + +- HTML: Fixed NPE when using HTML text on a component with `null` font. (issue + #930; PR #931; regression in 3.5) + + ## 3.5.3 #### Fixed bugs diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatHTML.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatHTML.java index 33173a5a..a91bfa4c 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatHTML.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatHTML.java @@ -17,6 +17,7 @@ package com.formdev.flatlaf.ui; import java.awt.Color; +import java.awt.Font; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.Arrays; @@ -74,9 +75,9 @@ public class FlatHTML for( int i = 1; i <= 7; i++ ) System.out.println( i+": "+ styleSheet.getPointSize( i ) ); debug*/ - int fontBaseSize = c.getFont().getSize(); + Font font = c.getFont(); if( styleSheet.getPointSize( 7 ) != 36f || - styleSheet.getPointSize( 4 ) == fontBaseSize ) + font == null || styleSheet.getPointSize( 4 ) == font.getSize() ) return; // check whether view uses "absolute-size" keywords (e.g. "x-large") for font-size @@ -97,7 +98,7 @@ debug*/ return; // BASE_SIZE rule is parsed in javax.swing.text.html.StyleSheet.addRule() - String style = ""; + String style = ""; String openTag = ""; String closeTag = ""; diff --git a/flatlaf-core/src/test/java/com/formdev/flatlaf/ui/TestFlatHTML.java b/flatlaf-core/src/test/java/com/formdev/flatlaf/ui/TestFlatHTML.java index f6026112..4a8e442b 100644 --- a/flatlaf-core/src/test/java/com/formdev/flatlaf/ui/TestFlatHTML.java +++ b/flatlaf-core/src/test/java/com/formdev/flatlaf/ui/TestFlatHTML.java @@ -16,6 +16,7 @@ package com.formdev.flatlaf.ui; +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.Locale; import javax.swing.JComponent; @@ -73,6 +74,15 @@ public class TestFlatHTML testHtmlBaseSize( "${BASE_SIZE}

header1

" + body + "", "header1\n" + bodyPlain ); } + @Test + void htmlOnComponentWithNullFont() { + assertDoesNotThrow( () -> { + JLabel label = new JLabel(); + label.setFont( null ); + label.setText( "foo
bar" ); + } ); + } + private void testHtmlBaseSize( String html, String expectedPlain ) { testHtmlBaseSizeImpl( html, expectedPlain ); testHtmlBaseSizeImpl( html.toUpperCase( Locale.ENGLISH ), expectedPlain.toUpperCase( Locale.ENGLISH ) ); From 0a9ecd66a9c26591309a0489e0dd483c665b1fc7 Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Mon, 9 Dec 2024 00:43:44 +0100 Subject: [PATCH 2/3] Linux: fixed NPE when using FlatLaf window decorations and switching theme (issue #933; regression in 3.5.3) caused by fix for #907; commit d471f08b156aef5c2a219d3842465419f516e8d0 --- CHANGELOG.md | 2 ++ .../main/java/com/formdev/flatlaf/ui/FlatWindowResizer.java | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c9ee6322..a5c17b22 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ FlatLaf Change Log - HTML: Fixed NPE when using HTML text on a component with `null` font. (issue #930; PR #931; regression in 3.5) +- Linux: Fixed NPE when using FlatLaf window decorations and switching theme. + (issue #933; regression in 3.5.3) ## 3.5.3 diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatWindowResizer.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatWindowResizer.java index c466ecf8..a7a77b08 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatWindowResizer.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatWindowResizer.java @@ -272,7 +272,8 @@ public abstract class FlatWindowResizer public void doLayout() { super.doLayout(); - centerComp.setBounds( 0, 0, resizeComp.getWidth(), resizeComp.getHeight() ); + if( centerComp != null && centerComp.isVisible() ) + centerComp.setBounds( 0, 0, resizeComp.getWidth(), resizeComp.getHeight() ); } @Override @@ -376,6 +377,7 @@ public abstract class FlatWindowResizer @Override protected void beginResizing( int resizeDir ) { + centerComp.setBounds( 0, 0, resizeComp.getWidth(), resizeComp.getHeight() ); centerComp.setCursor( getPredefinedCursor( resizeDir ) ); centerComp.setVisible( true ); } From 3ba9fc6c1c2e258da55a8b81ec2b3792f5ea418e Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Mon, 9 Dec 2024 00:44:57 +0100 Subject: [PATCH 3/3] release 3.5.4 --- CHANGELOG.md | 2 +- gradle.properties | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a5c17b22..7b7ebeeb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ FlatLaf Change Log ================== -## 3.5.4-SNAPSHOT +## 3.5.4 #### Fixed bugs diff --git a/gradle.properties b/gradle.properties index d2172da3..6902d50c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -14,7 +14,7 @@ # limitations under the License. # -flatlaf.releaseVersion = 3.5.3 +flatlaf.releaseVersion = 3.5.4 flatlaf.developmentVersion = 3.6-SNAPSHOT org.gradle.parallel = true