From b590f41254a36404e689298727895c9d6231d03c Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Thu, 11 Nov 2021 12:31:14 +0100 Subject: [PATCH] Linux: fixed NPE when using `java.awt.TrayIcon` (issue #405) (cherry picked from commit 16a769ea615cad41f4342deb385055adaaf5f80d) --- CHANGELOG.md | 1 + flatlaf-core/src/main/java/com/formdev/flatlaf/FlatLaf.java | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 75479a88..ee7b8f26 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ FlatLaf Change Log `JTable.surrendersFocusOnKeystroke` is `true`) and `TextComponent.selectAllOnFocusPolicy` is `once` (the default) or `always`. (issue #395) +- Linux: Fixed NPE when using `java.awt.TrayIcon`. (issue #405) ## 1.6.1 diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatLaf.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatLaf.java index 9ff1ff0a..120f5ab5 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatLaf.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatLaf.java @@ -264,6 +264,12 @@ public abstract class FlatLaf } }; Toolkit toolkit = Toolkit.getDefaultToolkit(); + + // make sure that AWT desktop properties are initialized (on Linux) + // before invoking toolkit.addPropertyChangeListener() + // https://github.com/JFormDesigner/FlatLaf/issues/405#issuecomment-960242342 + toolkit.getDesktopProperty( "dummy" ); + toolkit.addPropertyChangeListener( desktopPropertyName, desktopPropertyListener ); if( desktopPropertyName2 != null ) toolkit.addPropertyChangeListener( desktopPropertyName2, desktopPropertyListener );