Releases: kdroidFilter/ComposeNativeTray
1.0.5
What's Changed
- Compile native libs in the CI by @amir1376 in #342
- Fix the build-native job and update the maclib/build.sh by @amir1376 in #343
- Restructure CI workflows for native builds by @kdroidFilter in #352
New Contributors
Full Changelog: v1.0.4...v1.0.5
1.0.4
TrayApp : Adjust outside click detection for DPI scaling onj Windows
Full Changelog: v1.0.3...v1.0.4
1.0.3
Improve tray position detection on Windows Hdpi
Full Changelog: v1.0.2...v1.0.3
1.0.2
What's Changed
- Update init time of macos trayApp by @kdroidFilter in #323
Full Changelog: v1.0.1...v1.0.2
1.0.1
What's Changed
- Refactor and enhance tray window dismissal behavior in TrayApp by @kdroidFilter in #319
- Refactor and improve
TrayAppimplementation and dialog management by @kdroidFilter in #320 - Update
TrayAppwith new parameters and enhanced documentation by @kdroidFilter in #321 - Refactor dialog positioning and transition animations in TrayApp by @kdroidFilter in #322
Full Changelog: v1.0.0...v1.0.1
1.0.0
🎉 ComposeNativeTray 1.0.0
ComposeNativeTray has reached its first stable release!
The library is now considered production-ready across Windows, macOS, and Linux.
👉 Note: TrayApp remains marked as experimental, but continues to evolve rapidly.
🏆 Stability Milestone
- Core APIs are now stable and production-safe
- Public API surface is frozen (non-experimental parts)
- Numerous fixes contributed by production users
✨ New: TrayWindowDismissMode
- Introduce
TrayWindowDismissModefor dismiss behavior control by @kdroidFilter in #316 - Bump jna from 5.18.0 to 5.18.1 by @dependabot[bot] in #312
The TrayApp popup window can now be configured with different dismiss behaviors:
-
AUTO (default)
The popup automatically hides when focus is lost or the user clicks outside (previous behavior). -
MANUAL
The popup stays visible until you explicitly calltrayAppState.hide().
Perfect for dashboards, overlays, or scenarios where the user should decide when to close.
val trayAppState = rememberTrayAppState(
initialDismissMode = TrayWindowDismissMode.MANUAL
)Switch at runtime:
trayAppState.setDismissMode(TrayWindowDismissMode.AUTO)Full Changelog: v0.9.8...v1.0.0
0.9.8
What's Changed
- Refactor TrayApp visibility and dialog positioning logic by @kdroidFilter in #311
Full Changelog: v0.9.7...v0.9.8
0.9.7
What's Changed
- Improve TrayApp window positioning and state management by @kdroidFilter in #310
Full Changelog: v0.9.6...v0.9.7
0.9.6
What's Changed
- Preserve component states and update TrayApp management by @kdroidFilter in #309
Full Changelog: v0.9.5...v0.9.6
0.9.5
📦 ComposeNativeTray 0.9.5
This release fixes a critical state preservation issue in TrayApp - component states are now properly maintained when toggling the popup window visibility.
🐛 Critical Fix: State Preservation
Problem: Hiding the popup window destroyed all internal states (text inputs, selections, scroll positions)
Solution: The window now remains in the composition tree with controlled visibility
// Before: States were lost
if (shouldShowWindow) {
DialogWindow(...) { content() }
}
// After: States are preserved
DialogWindow(
visible = shouldShowWindow, // Control visibility without unmounting
...
) { content() }✨ What's Fixed
- Text fields, checkboxes, and forms retain their values
- Scroll positions are maintained
- Running animations continue smoothly
- No more content resets when reopening the popup
📝 Notes
- Fully backwards compatible - no code changes required
- Performance improvement - no component recreation overhead
- Works across all platforms (Windows, macOS, Linux)
Full Changelog: v0.9.4...v0.9.5