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
AsyncRelayCommand catches non-cancellation exceptions — Exceptions from command methods now log + toast instead of propagating through async void to DispatcherUnhandledException and terminating the app. Static CommandFaulted event enables graceful error reporting.
ApplyRotationToFile and ApplyCropSelection converted to async — Both now yield to the dispatcher after BeginOperationStatus so the operation status overlay renders before the heavy I/O begins.
BackgroundTaskTracker evicts idle per-name entries — Completed task entries are removed from _byName when Running reaches 0, preventing unbounded dictionary growth during long sessions.
Theme
PerspectiveCorrectionWindow uses themed overlay brushes — Handle strokes, polygon fills, and label backgrounds now use AccentBrush, AccentSelectionBrush, TextBrush, and FloatingChromeBrush instead of hardcoded Mocha hex values. Overlays now adapt correctly to Latte and HighContrast themes.