Ed flagged this as recurring. Swept all ShowDialog call sites and fixed the ones that
can appear while RemSound is minimised in the tray (a plain ShowDialog opens BEHIND
everything there — no foreground focus, NVDA can't find it):
- Quick profile switch (QuickProfileSwitchDialog): opened by a GLOBAL hotkey, so the
app is usually minimised when it fires. Was using an ad-hoc SetForegroundWindow that
Windows blocks from a background process (only flashes the taskbar). Now via
ForegroundDialog; deleted the weak BringToForeground + its P/Invoke.
- Close-time unsaved-changes prompt (OnFormClosing): fires from tray -> Exit and OS
shutdown while minimised. Now via ForegroundDialog. (Also covers the tray profile-
switch, which routes through the same form-close path.)
- (Service-profile dialog was fixed in the previous commit.)
Verified the rest are safe: startup notices, update notices, the service/mic/Realtek/
About warnings and the password dialogs already use ForegroundDialog; every other
ShowDialog(this) is menu- or button-driven with the app already focused (Preferences,
EQ band, rename, recording settings, profile picker, hotkey capture nested in the
menu-driven shortcuts dialog). Recorded the rule in memory so it stops recurring.
Gate 71/71 + 7 relay tests; 0 warnings.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>