From 16a769ea615cad41f4342deb385055adaaf5f80d Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Wed, 3 Nov 2021 23:37:37 +0100 Subject: [PATCH] Linux: fixed NPE when using `java.awt.TrayIcon` (issue #405) --- 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 519bfd2f..49b2cbd3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -56,6 +56,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 88338293..ab7ae5e3 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatLaf.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatLaf.java @@ -269,6 +269,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 );