15ea9a56b9
* fix: handle null bounds in WindowLocation to prevent NPE on dialog dispose The equals(), hashCode(), and toString() methods in WindowLocation could throw NullPointerException when bounds is null. This happens when a dialog window is disposed before its bounds are fully initialized (e.g., on macOS when closing the search dialog). Use Objects.equals()/Objects.hashCode() for null-safe comparisons and add a null guard in toString(). Fixes #2571 * additional null checks and null annotations --------- Co-authored-by: easonysliu <easonysliu@tencent.com> Co-authored-by: Skylot <118523+skylot@users.noreply.github.com>