You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fixed overlay content being cut off when only FPS is displayed without additional metrics. The overlay width is now fully content-driven instead of being clamped to a fixed size. (#1)
Fixed unnecessary bottom padding in the overlay. Height is now calculated precisely from the number of visible lines plus minimal padding, eliminating the dead space below the last metric.
Fixed overlay appearing on non-game fullscreen applications such as Windows Explorer, browsers (Chrome, Edge, Firefox), Settings, and other desktop apps. A curated exclusion list of ~25 common non-game processes is now checked before showing the overlay. (#1)
🌐 Localization
Unified all UI text to English. The system tray menu ("Impostazioni" → "Settings", "Esci" → "Exit"), tooltip, settings window title, and all error messages are now consistently in English. (#1)
⚡ Performance
Optimized GDI font handling in the overlay renderer. The font is now created once per paint cycle and reused across all stat lines, instead of being allocated and destroyed for each individual line.
Removed unused ferrisetw dependency, reducing binary size and compile time.
🔧 Code Quality
Eliminated unsafe static mut for the tray icon storage. Replaced with a safe Mutex-wrapped newtype pattern (TrayIconHolder) with documented safety invariants.
Added Drop implementation for SystemMonitor to automatically release PDH query handles, preventing potential resource leaks on shutdown.
Improved debug logging with human-readable timestamps (HH:MM:SS) instead of raw Unix epoch seconds.
Deduplicated overlay dimension logic — width and height are now computed in a single calculate_dimensions() function used by both the window positioning and painting code.