diff --git a/CHANGELOG.md b/CHANGELOG.md index aeed11f9..aabad048 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,8 @@ FlatLaf Change Log LaF. - On HiDPI screens, use high-resolution images for preview of iconified internal frames in dock. +- PopupFactory: Fixed occasional `NullPointerException` in + `FlatPopupFactory.fixToolTipLocation()`. (issue #305) ## 1.1.2 diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatPopupFactory.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatPopupFactory.java index c8d119bb..a9410c06 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatPopupFactory.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatPopupFactory.java @@ -24,6 +24,7 @@ import java.awt.Insets; import java.awt.MouseInfo; import java.awt.Panel; import java.awt.Point; +import java.awt.PointerInfo; import java.awt.Rectangle; import java.awt.Window; import java.awt.event.ComponentEvent; @@ -216,7 +217,11 @@ public class FlatPopupFactory if( !(contents instanceof JToolTip) || !wasInvokedFromToolTipManager() ) return null; - Point mouseLocation = MouseInfo.getPointerInfo().getLocation(); + PointerInfo pointerInfo = MouseInfo.getPointerInfo(); + if( pointerInfo == null ) + return null; + + Point mouseLocation = pointerInfo.getLocation(); Dimension tipSize = contents.getPreferredSize(); // check whether mouse location is within tooltip bounds